Halaman ini menjelaskan cara menjalankan Sentieon® DNASeq® sebagai pipeline Google Cloud untuk analisis genom sekunder. Pipeline ini cocok dengan hasil berikut dari Praktik Terbaik Genome Analysis Toolkit (GATK) versi 3.7:
- Perataan
- Pengurutan
- Penghapusan duplikat
- Kalibrasi ulang skor kualitas dasar (BQSR)
- Panggilan varian
Format input meliputi:
- file fastq
- File BAM yang diselaraskan dan diurutkan
Tujuan
Setelah menyelesaikan tutorial ini, Anda akan mengetahui cara:
- Menjalankan pipeline di Google Cloud menggunakan Sentieon® DNASeq®
- Menulis file konfigurasi untuk berbagai kasus penggunaan Sentieon® DNASeq®
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Compute Engine
- Cloud Storage
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Instal Python 2.7+. Untuk mengetahui informasi selengkapnya tentang penyiapan lingkungan pengembangan Python, seperti menginstal pip di sistem Anda, lihat Panduan Penyiapan Lingkungan Pengembangan Python.
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Life Sciences, Compute Engine, and Cloud Storage.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Life Sciences, Compute Engine, and Cloud Storage.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Update dan instal komponen
gcloud
:gcloud components update
gcloud components install beta - Instal git untuk mendownload file yang diperlukan.
-
Secara default, Compute Engine menerapkan kuota resource untuk mencegah penggunaan yang tidak disengaja. Dengan meningkatkan kuota, Anda dapat meluncurkan lebih banyak virtual machine secara bersamaan, sehingga meningkatkan throughput dan mengurangi waktu penyelesaian.
Untuk mendapatkan hasil terbaik dalam tutorial ini, Anda harus meminta kuota tambahan di atas kuota default project Anda. Rekomendasi untuk penambahan kuota tercantum dalam daftar berikut ini beserta kuota minimum yang diperlukan untuk menjalankan tutorial. Buat permintaan kuota Anda di region
us-central1
:- CPU: 64
- Standar Persistent Disk (GB): 375
Anda dapat mengosongkan kolom permintaan kuota lainnya untuk mempertahankan kuota saat ini.
Lisensi evaluasi Sentieon®
Saat menggunakan pipeline ini, Sentieon® otomatis memberi Anda lisensi evaluasi gratis selama dua minggu
untuk software-nya agar dapat digunakan dengan Google Cloud. Untuk menerima lisensi, masukkan alamat email Anda di kolom EMAIL
saat mengonfigurasi pipeline. Lihat
Memahami format input untuk
mengetahui informasi tentang setelan kolom ini.
Untuk terus menggunakan Sentieon® setelah masa berlaku lisensi evaluasi berakhir, hubungi support@sentieon.com.
Menyiapkan lingkungan lokal dan menginstal prasyarat
Jika tidak memiliki virtualenv, jalankan perintah berikut untuk menginstalnya menggunakan pip:
pip install virtualenv
Jalankan perintah berikut untuk membuat lingkungan Python yang terisolasi dan menginstal dependensi:
virtualenv env source env/bin/activate pip install --upgrade \ pyyaml \ google-api-python-client \ google-auth \ google-cloud-storage \ google-auth-httplib2
Mendownload skrip pipeline
Jalankan perintah berikut untuk mendownload file contoh dan menetapkan direktori Anda saat ini:
git clone https://github.com/sentieon/sentieon-google-genomics.git cd sentieon-google-genomics
Memahami format input
Pipeline menggunakan parameter yang ditentukan dalam file JSON sebagai inputnya.
Di repositori yang Anda download, ada file examples/example.json
dengan konten berikut:
{ "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" }
Tabel berikut menjelaskan kunci JSON dalam file:
Kunci JSON | Deskripsi |
---|---|
FQ1 |
Pasangan pembacaan pertama dalam file fastq input. |
FQ2 |
Pasangan pembacaan kedua dalam file fastq input. |
BAM |
File BAM input, jika ada. |
REF |
Genom referensi. Jika disetel, file indeks fastq/BAM diasumsikan ada. |
OUTPUT_BUCKET |
Bucket dan direktori yang digunakan untuk menyimpan output data dari pipeline. |
ZONES |
Daftar zona Google Cloud yang dipisahkan koma yang akan digunakan untuk node pekerja. |
PROJECT_ID |
ID Project Google Cloud Anda. |
REQUESTER_PROJECT |
Project yang akan ditagih saat mentransfer data dari bucket Requester Pays. |
EMAIL |
Alamat email Anda. |
Menjalankan pipeline
Dalam direktori
sentieon-google-genomics
, edit fileexamples/example.json
, dengan mengganti variabel BUCKET, REQUESTER_PROJECT, EMAIL, dan PROJECT_ID dengan resource yang relevan dari project Google Cloud Anda:{ "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" }
Tetapkan variabel PROJECT_ID di lingkungan Anda:
export PROJECT_ID=PROJECT_ID
Jalankan perintah berikut untuk menjalankan pipeline DNASeq® pada set data pengujian kecil yang diidentifikasi oleh input dalam file konfigurasi. Secara default, skrip memverifikasi bahwa file input ada di bucket Cloud Storage Anda sebelum memulai pipeline.
python runner/sentieon_runner.py --requester_project $PROJECT_ID examples/example.json
Jika Anda menentukan beberapa percobaan yang dapat dihentikan, pipeline akan dimulai ulang setiap kali instance-nya di-preempt. Setelah selesai, pipeline akan memberikan output pesan ke konsol yang menyatakan apakah pipeline berhasil atau gagal.
Konfigurasi yang direkomendasikan
Untuk sebagian besar situasi, Anda dapat mengoptimalkan waktu dan biaya penyelesaian menggunakan konfigurasi berikut. Konfigurasi ini menjalankan genom manusia 30x dengan biaya sekitar $1,25 dan membutuhkan waktu sekitar 2 jam. Biaya seluruh exome manusia sekitar $0,35 dan memakan waktu sekitar 45 menit. Kedua estimasi ini didasarkan pada instance pipeline yang tidak di-preempt.
{ "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" }
Opsi tambahan
Anda dapat menyesuaikan pipeline menggunakan opsi tambahan berikut.
Opsi file input
Pipeline mendukung beberapa file fastq yang dipisahkan koma sebagai input, seperti yang ditunjukkan konfigurasi berikut:
"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",
Pipeline menerima file BAM yang dipisahkan koma sebagai input menggunakan kunci JSON
BAM
. Pembacaan dalam file BAM tidak selaras dengan genom referensi.
Sebagai gantinya, peristiwa tersebut akan dimulai pada tahap penghapusan duplikat data dalam pipeline. Contoh
berikut menunjukkan konfigurasi menggunakan dua file BAM sebagai input:
"BAM": "gs://my-bucket/s1_prep1.bam,gs://my-bucket/s1_prep2.bam"
Konfigurasi data all-exome atau set data besar
Setelan dalam konfigurasi yang direkomendasikan dioptimalkan untuk sampel seluruh genom manusia yang diurutkan ke cakupan rata-rata 30x. Untuk file yang jauh lebih kecil atau lebih besar dari set data genom utuh standar, Anda dapat menambah atau mengurangi resource yang tersedia untuk instance. Untuk mendapatkan hasil terbaik dengan set data besar, gunakan setelan berikut:
{ "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" }
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
DISK_SIZE |
Ruang SSD yang tersedia untuk node pekerja. |
MACHINE_TYPE |
Jenis virtual machine Compute Engine yang akan digunakan. Nilai defaultnya adalah n1-standard-1 . |
CPU_PLATFORM |
Platform CPU yang akan diminta. Harus berupa nama platform CPU Compute Engine yang valid (seperti "Intel Skylake"). |
Preemptible instance
Anda dapat menggunakan instance yang dapat dihentikan di pipeline Anda dengan menetapkan kunci JSON PREEMPTIBLE_TRIES
.
Secara default, runner akan mencoba menjalankan pipeline dengan instance standar jika percobaan yang dapat dihentikan habis atau jika kunci JSON NONPREEMPTIBLE_TRY
ditetapkan ke 0
. Anda dapat menonaktifkan perilaku ini dengan menyetel
kunci NONPREEMPTIBLE_TRY
ke false
, seperti yang ditunjukkan dalam konfigurasi berikut:
"PREEMPTIBLE_TRIES": 2,
"NONPREEMPTIBLE_TRY": false
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
PREEMPTIBLE_TRIES |
Frekuensi untuk mencoba pipeline saat menggunakan preemptible instance. |
NONPREEMPTIBLE_TRY |
Menentukan apakah akan mencoba menjalankan pipeline dengan instance standar setelah percobaan yang dapat dihentikan habis. |
Membaca grup
Grup baca ditambahkan saat file fastq diselaraskan dengan genom referensi menggunakan Sentieon® BWA. Anda dapat menyediakan beberapa grup baca yang dipisahkan koma.
Jumlah grup baca harus sesuai dengan jumlah file fastq input.
Grup baca default-nya adalah @RG\\tID:read-group\\tSM:sample-name\\tPL:ILLUMINA
.
Untuk mengubah grup baca, tetapkan kunci READGROUP
dalam file input JSON, seperti
yang ditunjukkan dalam konfigurasi berikut:
"READGROUP": "@RG\\tID:my-rgid-1\\tSM:my-sm\\tPL:ILLUMINA,@RG\\tID:my-rgid-2\\tSM:my-sm\\tPL:ILLUMINA"
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
READGROUP |
Grup baca yang berisi contoh metadata. |
Untuk mengetahui informasi selengkapnya tentang grup baca, lihat Membaca grup.
Streaming input dari Cloud Storage
Anda dapat melakukan streaming file fastq input dari Cloud Storage yang dapat mengurangi total runtime pipeline. Untuk melakukan streaming file fastq input dari Cloud Storage, tetapkan kunci JSON STREAM_INPUT
ke True
:
"STREAM_INPUT": "True"
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
STREAM_INPUT |
Menentukan apakah akan melakukan streaming file fastq input langsung dari Cloud Storage. |
Penandaan duplikat
Secara default, pipeline menghapus pembacaan duplikat dari file BAM. Anda dapat
mengubah perilaku ini dengan menetapkan kunci JSON DEDUP
, seperti yang ditunjukkan dalam konfigurasi
berikut:
"DEDUP": "markdup"
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
DEDUP |
Perilaku penandaan duplikat. Nilai yang valid:
|
Kalibrasi ulang skor kualitas dasar (BQSR) dan situs yang diketahui
BSQR memerlukan situs variasi genetik yang diketahui. Perilaku default-nya adalah
melewati tahap pipeline ini. Namun, Anda dapat mengaktifkan BSQR dengan menyediakan
kunci JSON BQSR_SITES
untuk situs dikenal. Jika disediakan, file DBSNP
dapat digunakan untuk menganotasi varian output selama panggilan
varian.
"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"
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
BSQR_SITES |
Mengaktifkan BSQR dan menggunakan daftar file yang disediakan, yang dipisahkan koma, sebagai situs yang dikenal. |
DBSNP |
File dbTPM yang digunakan selama panggilan varian. |
Interval
Untuk beberapa aplikasi, seperti pengurutan yang ditargetkan atau seluruh eksom, Anda mungkin hanya tertarik pada sebagian genom. Dalam kasus tersebut, menyediakan file
interval target dapat mempercepat pemrosesan dan mengurangi panggilan varian di luar target
berkualitas rendah. Anda dapat menggunakan interval dengan kunci JSON INTERVAL_FILE
dan INTERVAL
.
"INTERVAL_FILE": "gs://my-bucket/capture-targets.bed",
"INTERVAL": "9:80331190-80646365"
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
INTERVAL_FILE |
File yang berisi interval genom yang akan diproses. |
INTERVAL |
String yang berisi interval genomik yang akan diproses. |
Opsi output
Secara default, pipeline menghasilkan BAM, metrik kontrol kualitas, dan panggilan varian yang telah diproses sebelumnya. Anda dapat menonaktifkan setiap output ini menggunakan kunci JSON NO_BAM_OUTPUT
, NO_METRICS
, dan NO_HAPLOTYPER
. Jika
argumen NO_HAPLOTYPER
tidak diberikan atau NULL
, Anda dapat menggunakan
kunci JSON GVCF_OUTPUT
untuk menghasilkan panggilan varian dalam format gVCF, bukan format
VCF.
"NO_BAM_OUTPUT": "true",
"NO_METRICS": "true",
"NO_HAPLOTYPER": "true",
"GVCF_OUTPUT": "true",
Tabel berikut memberikan deskripsi setelan yang digunakan:
Kunci JSON | Deskripsi |
---|---|
NO_BAM_OUTPUT |
Menentukan apakah akan menghasilkan file BAM yang telah diproses sebelumnya atau tidak. |
NO_METRICS |
Menentukan apakah akan menghasilkan metrik file. |
NO_HAPLOTYPER |
Menentukan apakah akan menghasilkan panggilan varian. |
GVCF_OUTPUT |
Menentukan apakah akan menghasilkan panggilan varian dalam format gVCF. |
Versi Sentieon® DNASeq®
Anda dapat menggunakan versi terbaru paket software Sentieon® DNASeq® dengan Cloud Life Sciences API dengan menentukan kunci JSON SENTIEON_VERSION
, seperti berikut:
"SENTIEON_VERSION": "201808.08"
Versi berikut valid:
201711.01
201711.02
201711.03
201711.04
201711.05
201808
201808.01
201808.03
201808.05
201808.06
201808.07
201808.08
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat di Google Cloud sehingga tidak akan ditagih pada masa mendatang. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghapus penagihan adalah dengan menghapus project yang Anda gunakan untuk tutorial.
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Project.
- Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete project.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Jika ada pertanyaan tentang pipeline atau mengalami masalah, kirim email ke support@sentieon.com.