Parte 3: Organizzazione degli input¶
Traduzione assistita da IA - scopri di più e suggerisci miglioramenti
Nella Parte 2, abbiamo eseguito molkart con più parametri dalla riga di comando. Ora impareremo due approcci migliori per gestire gli input: file di parametri e samplesheet.
1. Utilizzo dei file di parametri¶
1.1. Il problema delle righe di comando lunghe¶
Nella Parte 2 abbiamo già utilizzato un file di parametri per mantenere il comando breve e preservare i valori digitati (come i parametri interi di pre-elaborazione) intatti:
Passare molti parametri singolarmente dalla riga di comando è difficile da riprodurre, condividere o modificare. Cosa succede se è necessario eseguire nuovamente la stessa analisi il prossimo mese? Cosa succede se un collaboratore vuole utilizzare le vostre stesse impostazioni? Un file di parametri risolve questo problema.
1.2. Il file di parametri¶
Ecco il file params.yaml che abbiamo utilizzato:
input: "data/samplesheet.csv"
outdir: "results"
mindagap_tilesize: 90
mindagap_boxsize: 7
mindagap_loopnum: 100
clahe_pyramid_tile: 368
segmentation_method: "cellpose"
Ogni parametro è scritto come una coppia chiave: valore.
Scrivere i numeri interi senza virgolette (ad esempio mindagap_tilesize: 90) preserva il loro tipo intero, richiesto dalla validazione dei parametri della pipeline.
Il vostro comando diventa:
Il file di parametri documenta la vostra configurazione esatta e rende facile rieseguire o condividere.
1.3. Sovrascrittura dei parametri¶
È ancora possibile sovrascrivere parametri specifici dalla riga di comando:
nextflow run ./molkart -params-file params.yaml --segmentation_method "stardist" --outdir stardist_results -resume
La riga sopra cambia il segmentation_method in stardist e il nome di --outdir in stardist_results invece dei parametri nel file params.yaml.
Inoltre, potete vedere che il flag -resume ci ha permesso di riutilizzare i risultati di pre-elaborazione dall'esecuzione precedente, risparmiando tempo.
Potete utilizzare questo schema per testare rapidamente diverse variazioni della pipeline.
Takeaway¶
I file di parametri rendono le vostre analisi riproducibili e facili da condividere. Utilizzateli per qualsiasi lavoro di analisi reale.
Cosa c'è dopo?¶
Scoprite come i samplesheet organizzano le informazioni su più campioni.
2. Il pattern samplesheet¶
2.1. Cos'è un samplesheet?¶
Un samplesheet è un file CSV che descrive i vostri campioni di input. Ogni riga è un campione e le colonne specificano i file e i metadati per quel campione.
Esaminiamo il samplesheet che abbiamo utilizzato:
sample,nuclear_image,spot_table,membrane_image
mem_only,https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/nuclear.tiff,https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/spots.txt,https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/membrane.tiff
Le colonne sono:
sample: Identificatore univoco del campionenuclear_image: Immagine di colorazione nucleare (TIFF)spot_table: Punti di trascrizione (TXT)membrane_image: Immagine di colorazione della membrana (TIFF, opzionale)
2.2. Percorsi dei file¶
I samplesheet accettano diversi tipi di percorso:
- URL: Nextflow scarica automaticamente (come mostrato sopra)
- Percorsi locali:
data/nuclear.tiffo/absolute/path/to/nuclear.tiff - Cloud storage:
s3://bucket/nuclear.tiff,gs://bucket/nuclear.tiff,az://container/nuclear.tiff
Può combinare tipi di percorso nello stesso samplesheet.
2.3. Creazione del proprio samplesheet¶
Prima, scarichiamo i file di dati di test localmente:
cd /workspaces/training/nf4-science/imaging/data
curl -O https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/nuclear.tiff
curl -O https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/spots.txt
curl -O https://raw.githubusercontent.com/nf-core/test-datasets/molkart/test_data/input_data/membrane.tiff
cd ..
Ora modifichiamo il samplesheet per fare riferimento a questi file locali:
sample,nuclear_image,spot_table,membrane_image
mem_only,data/nuclear.tiff,data/spots.txt,data/membrane.tiff
Avviso
Noti che i percorsi nel samplesheet sono relativi a dove esegue Nextflow, non a dove si trova il samplesheet.
Infine, eseguiamo nf-core/molkart un'altra volta con il samplesheet con percorsi di file locali:
nextflow run ./molkart -params-file params.yaml -resume
Come potete vedere, Nextflow esegue questa esecuzione in modo simile a quando i file sono stati scaricati da GitHub. Questa è una delle grandi caratteristiche di Nextflow: prepara i dati correttamente per voi, indipendentemente da dove si trovano.
Takeaway¶
I samplesheet organizzano set di dati multi-campione in modo da permettervi di definire esplicitamente i vostri metadati insieme ai percorsi dei file. La maggior parte delle pipeline nf-core utilizza questo pattern.
Prossimi passi¶
Ora che abbiamo trattato gli input, esploriamo come configurare le pipeline Nextflow per diversi ambienti di calcolo.