In questa pagina viene spiegato come eseguire Sentieon® DNASeq® come Pipeline Google Cloud per l'analisi genomica secondaria. La pipeline corrisponde ai seguenti risultati delle best practice relative a Gennome Analysis Toolkit (GATK) versione 3.7:
- Allineamento
- Ordinamento
- Rimozione di duplicati
- Ricalibrazione del punteggio di qualità di base (BQSR)
- Chiamata delle varianti
I formati di input includono i seguenti:
- File fastq
- File BAM allineati e ordinati
Obiettivi
Dopo aver completato questo tutorial, saprai come:
- Eseguire una pipeline su Google Cloud utilizzando Sentieon® DNASeq®
- Scrivere file di configurazione per diversi casi d'uso Sentieon® DNASeq®
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
- Compute Engine
- Cloud Storage
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
- Installa Python 2.7 o versioni successive. Per ulteriori informazioni sulla configurazione dell'ambiente di sviluppo Python, come l'installazione di pip sul tuo sistema, consulta la Guida alla configurazione dell'ambiente di sviluppo Python.
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta - Installa git per scaricare i file richiesti.
-
Per impostazione predefinita, Compute Engine prevede le quote delle risorse
per evitare utilizzi involontari. Aumentando le quote, puoi avviare
più macchine virtuali contemporaneamente, aumentando la velocità effettiva e riducendo
i tempi di risposta.
Per ottenere i migliori risultati in questo tutorial, devi: richiedere una quota aggiuntiva rispetto a quello predefinito del progetto. I suggerimenti per gli aumenti della quota sono forniti nella che segue insieme alle quote minime necessarie per eseguire il tutorial. Effettua le tue richieste di quota nella regione
us-central1
:- CPU: 64
- Persistent Disk Standard (GB): 375
Puoi lasciare vuoti gli altri campi di richiesta della quota per mantenere le quote attuali.
Licenza di valutazione Sentieon®
Quando usi questa pipeline, Sentieon® ti concede automaticamente due settimane gratuite
licenza di valutazione
per l'utilizzo con Google Cloud. Per ricevere la licenza, inserisci il tuo indirizzo email nel campo EMAIL
durante la configurazione della pipeline. Consulta
Informazioni sul formato di input per
informazioni sull'impostazione di questo campo.
Per continuare a utilizzare Sentieon® dopo la scadenza della licenza di valutazione, contatta support@sentieon.com.
Configura il tuo ambiente locale e prerequisiti di installazione
Se non hai virtualenv, esegui il seguente comando per installarlo utilizzando pip:
pip install virtualenv
Esegui questo comando per creare un ambiente Python isolato e installare le dipendenze:
virtualenv env source env/bin/activate pip install --upgrade \ pyyaml \ google-api-python-client \ google-auth \ google-cloud-storage \ google-auth-httplib2
Scarica lo script della pipeline
Esegui il seguente comando per scaricare i file di esempio e impostare la directory corrente:
git clone https://github.com/sentieon/sentieon-google-genomics.git cd sentieon-google-genomics
Informazioni sul formato di input
La pipeline utilizza come input i parametri specificati in un file JSON.
Nel repository che hai scaricato è presente un file examples/example.json
con i seguenti contenuti:
{ "FQ1": "gs://sentieon-test/pipeline_test/inputs/test1_1.fastq.gz", "FQ2": "gs://sentieon-test/pipeline_test/inputs/test1_2.fastq.gz", "REF": "gs://sentieon-test/pipeline_test/reference/hs37d5.fa", "OUTPUT_BUCKET": "gs://BUCKET", "ZONES": "us-central1-a,us-central1-b,us-central1-c,us-central1-f", "PROJECT_ID": "PROJECT_ID" "REQUESTER_PROJECT": "PROJECT_ID", "EMAIL": "YOUR_EMAIL_HERE" }
Nella tabella seguente vengono descritte le chiavi JSON contenute nel file:
Chiave JSON | Descrizione |
---|---|
FQ1 |
La prima coppia di letture nel file fastq di input. |
FQ2 |
La seconda coppia di letture nel file fastq di input. |
BAM |
Il file BAM di input, se applicabile. |
REF |
Il genoma di riferimento. Se impostato, si presume che i file di indice fastq/BAM esistano. |
OUTPUT_BUCKET |
Il bucket e la directory utilizzati per archiviare l'output dei dati dalla pipeline. |
ZONES |
Un elenco separato da virgole di zone Google Cloud da utilizzare per il nodo worker. |
PROJECT_ID |
L'ID del tuo progetto Google Cloud. |
REQUESTER_PROJECT |
Un progetto da fatturare durante il trasferimento dei dati dai bucket Pagamenti a carico del richiedente. |
EMAIL |
Il tuo indirizzo email. |
esegui la pipeline.
Nella directory
sentieon-google-genomics
, modificaexamples/example.json
, sostituendo il file BUCKET, REQUESTER_PROJECT, EMAIL e PROJECT_ID variabili con i valori pertinenti del progetto Google Cloud:{ "FQ1": "gs://sentieon-test/pipeline_test/inputs/test1_1.fastq.gz", "FQ2": "gs://sentieon-test/pipeline_test/inputs/test1_2.fastq.gz", "REF": "gs://sentieon-test/pipeline_test/reference/hs37d5.fa", "OUTPUT_BUCKET": "gs://BUCKET", "ZONES": "us-central1-a,us-central1-b,us-central1-c,us-central1-f", "PROJECT_ID": "PROJECT_ID", "REQUESTER_PROJECT": "PROJECT_ID", "EMAIL": "EMAIL_ADDRESS" }
Imposta la variabile PROJECT_ID nel tuo ambiente:
export PROJECT_ID=PROJECT_ID
Esegui questo comando per eseguire la pipeline DNASeq® su un piccolo test identificato dagli input nel file di configurazione. Per impostazione predefinita, lo script verifica che i file di input esistano nel bucket Cloud Storage prima di avviare la pipeline.
python runner/sentieon_runner.py --requester_project $PROJECT_ID examples/example.json
Se hai specificato più tentativi prerilasciabili, la pipeline si riavvia ogni volta che le relative istanze vengono prerilasciate. Dopo la pipeline termina, invia un messaggio alla console che indica se la pipeline riusciti o non riusciti.
Configurazione consigliata
Nella maggior parte dei casi, puoi ottimizzare i tempi di risposta e i costi utilizzando la seguente configurazione. La configurazione esegue un genoma umano pari a 30 volte costo di circa 1,25 $e richiede circa 2 ore. Un intero esoma umano costa circa 0,35 $e richiede circa 45 minuti. Entrambe queste stime si basano sulle istanze della pipeline che non vengono prerilasciate.
{ "FQ1": "gs://my-bucket/sample1_1.fastq.gz", "FQ2": "gs://my-bucket/sample1_2.fastq.gz", "REF": "gs://sentieon-test/pipeline_test/reference/hs37d5.fa", "OUTPUT_BUCKET": "gs://BUCKET", "BQSR_SITES": "gs://sentieon-test/pipeline_test/reference/Mills_and_1000G_gold_standard.indels.b37.vcf.gz,gs://sentieon-test/pipeline_test/reference/1000G_phase1.indels.b37.vcf.gz,gs://sentieon-test/pipeline_test/reference/dbsnp_138.b37.vcf.gz", "DBSNP": "gs://sentieon-test/pipeline_test/reference/dbsnp_138.b37.vcf.gz", "PREEMPTIBLE_TRIES": "2", "NONPREEMPTIBLE_TRY": true, "STREAM_INPUT": "True", "ZONES": "us-central1-a,us-central1-b,us-central1-c,us-central1-f", "PROJECT_ID": "PROJECT_ID", "EMAIL": "EMAIL_ADDRESS" }
Opzioni aggiuntive
Puoi personalizzare una pipeline utilizzando le seguenti opzioni aggiuntive.
Opzioni file di input
La pipeline supporta più file fastq separati da virgole come input, la seguente configurazione mostra:
"FQ1": "gs://my-bucket/s1_prep1_1.fastq.gz,gs://my-bucket/s1_prep2_1.fastq.gz",
"FQ2": "gs://my-bucket/s1_prep1_2.fastq.gz,gs://my-bucket/s1_prep2_2.fastq.gz",
La pipeline accetta come input file BAM separati da virgole utilizzando la chiave JSON BAM
. Le letture nei file BAM non sono allineate al genoma di riferimento.
Iniziano invece dalla fase di deduplicazione dei dati della pipeline. Le seguenti
un esempio mostra una configurazione che utilizza due file BAM come input:
"BAM": "gs://my-bucket/s1_prep1.bam,gs://my-bucket/s1_prep2.bam"
Dati dell'intero esoma o configurazione di set di dati di grandi dimensioni
Le impostazioni nella configurazione consigliata sono ottimizzati per i campioni dell'intero genoma umano sequenziati una copertura media di 30 volte. Nel caso di file molto più piccoli o più grandi di set di dati standard con intero genoma, puoi aumentare o diminuire le risorse disponibili per l'istanza. Per ottenere risultati ottimali con set di dati di grandi dimensioni, utilizza le seguenti impostazioni:
{ "FQ1": "gs://sentieon-test/pipeline_test/inputs/test1_1.fastq.gz", "FQ2": "gs://sentieon-test/pipeline_test/inputs/test1_2.fastq.gz", "REF": "gs://sentieon-test/pipeline_test/reference/hs37d5.fa", "OUTPUT_BUCKET": "gs://BUCKET", "ZONES": "us-central1-a,us-central1-b,us-central1-c,us-central1-f", "PROJECT_ID": "PROJECT_ID", "EMAIL": "EMAIL_ADDRESS", "DISK_SIZE": 600, "MACHINE_TYPE": "n1-highcpu-64", "CPU_PLATFORM": "Intel Broadwell" }
La tabella seguente fornisce una descrizione delle impostazioni utilizzate:
Chiave JSON | Descrizione |
---|---|
DISK_SIZE |
Spazio SSD disponibile per il nodo worker. |
MACHINE_TYPE |
Il tipo di macchina virtuale Compute Engine da utilizzare. Il valore predefinito è n1-standard-1 . |
CPU_PLATFORM |
La piattaforma CPU da richiedere. Deve essere un nome valido della piattaforma CPU di Compute Engine (ad esempio "Intel Skylake"). |
Istanze prerilasciabili
Puoi usare istanze prerilasciabili nella tua pipeline
impostando la chiave JSON PREEMPTIBLE_TRIES
.
Per impostazione predefinita, il runner tenta di eseguire la pipeline con un'istanza standard se i tentativi preattivabili sono esauriti o se la chiave JSON NONPREEMPTIBLE_TRY
è impostata su 0
. Puoi disattivare questo comportamento impostando
NONPREEMPTIBLE_TRY
per false
, come mostrato nella seguente configurazione:
"PREEMPTIBLE_TRIES": 2,
"NONPREEMPTIBLE_TRY": false
La tabella seguente fornisce una descrizione delle impostazioni utilizzate:
Chiave JSON | Descrizione |
---|---|
PREEMPTIBLE_TRIES |
Il numero di tentativi nella pipeline quando si utilizzano istanze prerilasciabili. |
NONPREEMPTIBLE_TRY |
Determina se provare a eseguire la pipeline con un'istanza standard dopo che sono stati esauriti i tentativi con prelazione. |
Gruppi di lettura
I gruppi di lettura vengono aggiunti quando i file fastq sono allineati con un riferimento
genomatico utilizzando Sentieon® BWA. Puoi fornire più gruppi di lettura separati da virgole.
Il numero di gruppi letti deve corrispondere al numero di file fastq di input.
Il gruppo di lettura predefinito è @RG\\tID:read-group\\tSM:sample-name\\tPL:ILLUMINA
.
Per cambiare il gruppo di lettura, imposta la chiave READGROUP
nel file di input JSON, come
mostrata nella seguente configurazione:
"READGROUP": "@RG\\tID:my-rgid-1\\tSM:my-sm\\tPL:ILLUMINA,@RG\\tID:my-rgid-2\\tSM:my-sm\\tPL:ILLUMINA"
La tabella seguente fornisce una descrizione dell'impostazione utilizzata:
Chiave JSON | Descrizione |
---|---|
READGROUP |
Un gruppo di lettura contenente metadati di esempio. |
Per maggiori informazioni sui gruppi di lettura, vedi Lettura dei gruppi.
Input di flussi di dati da Cloud Storage
Puoi trasmettere in streaming file fastq di input da Cloud Storage, il che può ridurre
il runtime totale della pipeline. Per trasmettere in streaming file fastq di input da
Cloud Storage, imposta la chiave JSON STREAM_INPUT
su True
:
"STREAM_INPUT": "True"
La tabella seguente fornisce una descrizione dell'impostazione utilizzata:
Chiave JSON | Descrizione |
---|---|
STREAM_INPUT |
Determina se trasmettere in streaming i file fastq di input direttamente da Cloud Storage. |
Contrassegnazione duplicata
Per impostazione predefinita, la pipeline rimuove le letture duplicate dai file BAM. Puoi
modifica questo comportamento impostando la chiave JSON DEDUP
, come mostrato di seguito
configurazione:
"DEDUP": "markdup"
La seguente tabella fornisce una descrizione dell'impostazione utilizzata:
Chiave JSON | Descrizione |
---|---|
DEDUP |
Comportamento di contrassegno duplicato. Valori validi:
|
Ricalibrazione del punteggio di qualità di base (BQSR) e siti noti
Il BSQR richiede siti noti di variazione genetica. Il comportamento predefinito è
ignora questa fase della pipeline. Tuttavia, puoi abilitare BSQR fornendo
noti con la chiave JSON BQSR_SITES
. Se fornita,
Il file DBSNP
può essere utilizzato per annotare le varianti di output durante la variante
chiamata.
"BQSR_SITES": "gs://my-bucket/reference/Mills_and_1000G_gold_standard.indels.b37.vcf.gz,gs://my-bucket/reference/1000G_phase1.indels.b37.vcf.gz,gs://my-bucket/reference/dbsnp_138.b37.vcf.gz",
"DBSNP": "gs://sentieon-test/pipeline_test/reference/dbsnp_138.b37.vcf.gz"
La tabella seguente fornisce una descrizione delle impostazioni utilizzate:
Chiave JSON | Descrizione |
---|---|
BSQR_SITES |
Attiva BSQR e utilizza un elenco separato da virgole dei file forniti come siti noti. |
DBSNP |
Un file dbSNP utilizzato durante la chiamata delle varianti. |
Intervalli
Per alcune applicazioni, come il sequenziamento mirato o dell'intero esoma, potresti essere interessato solo a una parte del genoma. In questi casi, fornire un file
di intervalli target può accelerare l'elaborazione e ridurre l'off-target di bassa qualità
chiamate delle varianti. Puoi utilizzare gli intervalli con le chiavi JSON INTERVAL_FILE
e INTERVAL
.
"INTERVAL_FILE": "gs://my-bucket/capture-targets.bed",
"INTERVAL": "9:80331190-80646365"
La tabella seguente fornisce una descrizione delle impostazioni utilizzate:
Chiave JSON | Descrizione |
---|---|
INTERVAL_FILE |
Un file contenente intervalli genomici da elaborare. |
INTERVAL |
Una stringa contenente un intervallo genomico da elaborare. |
Opzioni di output
Per impostazione predefinita, la pipeline produce un BAM pre-elaborato, le metriche di controllo qualità e le chiamate delle varianti. Puoi disabilitare uno qualsiasi di questi output utilizzando
Chiavi JSON NO_BAM_OUTPUT
, NO_METRICS
e NO_HAPLOTYPER
. Se
Non è specificato l'argomento NO_HAPLOTYPER
o NULL
, puoi utilizzare l'argomento
Chiave JSON GVCF_OUTPUT
per produrre chiamate di varianti in formato gVCF anziché VCF
formato.
"NO_BAM_OUTPUT": "true",
"NO_METRICS": "true",
"NO_HAPLOTYPER": "true",
"GVCF_OUTPUT": "true",
La tabella seguente fornisce una descrizione delle impostazioni utilizzate:
Chiave JSON | Descrizione |
---|---|
NO_BAM_OUTPUT |
Determina se generare un file BAM pre-elaborato. |
NO_METRICS |
Determina se restituire le metriche dei file. |
NO_HAPLOTYPER |
Determina se generare chiamate delle varianti. |
GVCF_OUTPUT |
Determina se restituire le chiamate delle varianti in formato gVCF. |
Versioni di Sentieon® DNASeq®
Puoi utilizzare qualsiasi versione recente del pacchetto software Sentieon® DNASeq® con
API Cloud Life Sciences specificando la chiave JSON SENTIEON_VERSION
, ad esempio
quindi:
"SENTIEON_VERSION": "201808.08"
Sono valide le seguenti versioni:
201711.01
201711.02
201711.03
201711.04
201711.05
201808
201808.01
201808.03
201808.05
201808.06
201808.07
201808.08
Esegui la pulizia
Al termine del tutorial, puoi ripulisci le risorse che hai creato su Google Cloud in modo che non ti venga addebitato alcun costo in futuro. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è quello di eliminare il progetto utilizzato per il tutorial.
Per eliminare il progetto:
- Nella console Google Cloud, vai alla pagina Progetti.
- Nell'elenco dei progetti, selezionare quello da eliminare e fai clic su Elimina progetto.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
- Se hai domande sulla pipeline o riscontri problemi, invia un'email all'indirizzo support@sentieon.com.