Część 4: Uruchamianie zdalnych pipeline'ów¶
Tłumaczenie wspomagane przez AI - dowiedz się więcej i zasugeruj ulepszenia
Do tej pory uruchamiałeś skrypty workflow'ów przechowywane lokalnie. W praktyce często będziesz chciał uruchamiać pipeline'y opublikowane w zdalnych repozytoriach, takich jak GitHub, bez konieczności ich samodzielnego pobierania.
Nextflow sprawia, że jest to proste: możesz uruchomić dowolny pipeline bezpośrednio z adresu URL repozytorium Git.
1. Uruchamianie pipeline'u z GitHub¶
Podstawowa składnia uruchamiania zdalnego pipeline'u to nextflow run <repository>, gdzie <repository> może być ścieżką do repozytorium GitHub, np. nextflow-io/hello, pełnym adresem URL lub ścieżką do GitLab, Bitbucket albo innej usługi hostingowej Git.
1.1. Uruchomienie pipeline'u¶
Uruchom oficjalny demonstracyjny pipeline Nextflow'a „hello". Jest to inny, znacznie prostszy pipeline niż ten, z którym pracowałeś w tym kursie: powstał wcześniej niż pipeline „Hello" używany w tym szkoleniu i po prostu wypisuje powitanie w kilku zakodowanych na stałe językach — nie spodziewaj się więc wejścia CSV ani ASCII art, do których jesteś przyzwyczajony.
Wyjście polecenia
N E X T F L O W ~ version 26.04.4
Pulling nextflow-io/hello ...
downloaded from https://github.com/nextflow-io/hello.git
Launching `https://github.com/nextflow-io/hello` [sleepy_swanson] revision: 3c2cdc9823 [master]
executor > local (4)
[ba/08236d] sayHello (4) | 4 of 4 ✔
Ciao world!
Hello world!
Bonjour world!
Hola world!
1.2. Znajdowanie miejsca, w którym pipeline jest zapisany w cache¶
Przy pierwszym uruchomieniu zdalnego pipeline'u Nextflow pobiera go i zapisuje lokalnie w cache. Kolejne uruchomienia korzystają z wersji zapisanej w cache, chyba że jawnie zażądasz aktualizacji.
Domyślnie Nextflow zapisuje pobrane pipeline'y w katalogu $NXF_HOME/assets.
Aby dowiedzieć się, gdzie trafił konkretny pipeline i jakie rewizje są dostępne, zapytaj Nextflow'a bezpośrednio:
Wyjście polecenia
project name: nextflow-io/hello
repository : https://github.com/nextflow-io/hello
local path : /workspaces/.nextflow/assets/.repos/nextflow-io/hello
main script : main.nf
revisions :
> master (default)
mybranch
testing
v1.1 [t]
v1.2 [t]
v1.3 [t]
Nextflow oznacza każdą rewizję, którą już pobrałeś lokalnie, symbolem >; pozostałe są dostępne, ale nie zostały jeszcze pobrane do kopii roboczej.
Możesz też wylistować wszystkie dotychczas pobrane pipeline'y za pomocą nextflow list:
Kurs Use nf-core omawia ten mechanizm cache'owania bardziej szczegółowo, w tym sposób przeglądania kodu źródłowego pobranego pipeline'u.
Podsumowanie¶
Wiesz już, jak uruchomić pipeline bezpośrednio z repozytorium GitHub bez jego samodzielnego pobierania, oraz gdzie znaleźć go lokalnie po uruchomieniu.
Co dalej?¶
Dowiedz się, jak przypiąć konkretną wersję zdalnego pipeline'u w celu zapewnienia odtwarzalności.
2. Określanie wersji dla odtwarzalności¶
Domyślnie Nextflow uruchamia najnowszą rewizję z domyślnej gałęzi.
Możesz przypiąć konkretną wersję (tag), gałąź lub commit za pomocą flagi -r.
2.1. Przypinanie konkretnej rewizji¶
Wyjście polecenia
N E X T F L O W ~ version 26.04.4
Pulling nextflow-io/hello:v1.3 ...
downloaded from https://github.com/nextflow-io/hello.git
Launching `https://github.com/nextflow-io/hello` [sick_carson] revision: 2ce0b0e294 [v1.3]
executor > local (4)
[61/e11f77] sayHello (4) | 4 of 4 ✔
Ciao world!
Bonjour world!
Hello world!
Hola world!
Nextflow pobiera daną rewizję przy pierwszym żądaniu — stąd linie Pulling i downloaded from; kolejne żądania tej samej rewizji pomijają ten krok i przechodzą od razu do Launching.
Przypinanie dokładnej rewizji jest kluczowe dla odtwarzalności.
Gwarantuje, że Ty i Twoi współpracownicy uruchamiacie dokładnie ten sam kod pipeline'u, niezależnie od tego, co zmieniło się w repozytorium od tamtej pory.
2.2. Rewizje obowiązują tylko dla danego wywołania¶
Przypięcie rewizji za pomocą -r wpływa wyłącznie na uruchomienie, w którym ją podajesz — nie zmienia tego, czego użyje późniejsze, zwykłe nextflow run.
Spróbuj uruchomić pipeline ponownie bez -r:
Wyjście polecenia
Mimo że poprzednie uruchomienie jawnie przypinało v1.3, to uruchomienie wraca do domyślnej gałęzi (master).
Nextflow przechowuje osobną lokalną kopię roboczą dla każdej używanej rewizji — to właśnie pokazują znaczniki > w wynikach nextflow info — ale nigdy nie zapamiętuje, którą uruchomiłeś ostatnio.
Nazwę domyślnej gałęzi pipeline'u możesz sprawdzić poleceniem nextflow info <pipeline> — jest to ta oznaczona jako (default).
Odtwarzalność leży całkowicie po Twojej stronie: zawsze podawaj -r jawnie, gdy ma to znaczenie, zamiast zakładać, że rewizja przypięta we wcześniejszym uruchomieniu nadal obowiązuje.
Podsumowanie¶
Wiesz już, jak przypiąć zdalny pipeline do konkretnej wersji, gałęzi lub commitu w celu odtwarzalnego wykonania, oraz że przypięcie obowiązuje tylko dla danego wywołania, a nie dla kolejnych uruchomień.
Co dalej?¶
Poznałeś już podstawy uruchamiania pipeline'ów Nextflow'a i zarządzania nimi. Zajrzyj do Podsumowania kursu, aby dowiedzieć się, co robić dalej.
Podsumowanie¶
W tej części nauczyłeś się:
- Uruchamiać pipeline bezpośrednio z repozytorium GitHub bez jego pobierania
- Przypinać zdalny pipeline do konkretnej rewizji w celu zapewnienia odtwarzalności oraz rozumieć, że przypięcie obowiązuje tylko dla danego wywołania