Halaman ini menjelaskan cara menjalankan Sentieon® DNASeq® sebagai pipeline Google Cloud untuk analisis genom sekunder. Pipeline ini cocok dengan hasil berikut dari Praktik Terbaik Toolkit Analisis Genomik (GATK) versi 3.7:
- Perataan
- Pengurutan
- Penghapusan duplikat
- Kalibrasi ulang skor kualitas dasar (BQSR)
- Panggilan varian
Format input mencakup hal berikut:
- file fastq
- File BAM yang disejajarkan dan diurutkan
Tujuan
Setelah menyelesaikan tutorial ini, Anda akan tahu cara:
- Menjalankan pipeline di Google Cloud menggunakan Sentieon® DNASeq®
- Menulis file konfigurasi untuk berbagai kasus penggunaan Sentieon® DNASeq®
Biaya
Dalam dokumen ini, Anda akan 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 informasi selengkapnya tentang cara menyiapkan lingkungan pengembangan Python, seperti menginstal pip di sistem, lihat Panduan Penyiapan Lingkungan Pengembangan Python.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
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.
-
Make sure that billing is enabled for your Google Cloud project.
-
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 - Instal git untuk mendownload file yang diperlukan.
-
Secara default, Compute Engine memiliki kuota resource untuk mencegah penggunaan yang tidak disengaja. Dengan meningkatkan kuota, Anda dapat meluncurkan
lebih banyak virtual machine secara serentak, sehingga meningkatkan throughput dan mengurangi
waktu penyelesaian.
Untuk mendapatkan hasil terbaik dalam tutorial ini, Anda harus meminta kuota tambahan di atas kuota default project. Rekomendasi untuk penambahan kuota diberikan dalam daftar berikut bersama dengan kuota minimum yang diperlukan untuk menjalankan tutorial. Buat permintaan kuota Anda di region
us-central1
:- CPU: 64
- Persistent Disk Standar (GB): 375
Anda dapat mengosongkan kolom permintaan kuota lainnya untuk mempertahankan kuota saat ini.
Lisensi evaluasi Sentieon®
Saat menggunakan pipeline ini, Sentieon® akan otomatis memberi Anda lisensi evaluasi dua minggu gratis untuk software-nya guna 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 cara menetapkan kolom ini.
Untuk terus menggunakan Sentieon® setelah masa berlaku lisensi evaluasi berakhir, hubungi support@sentieon.com.
Menyiapkan lingkungan lokal dan menginstal prasyarat
Jika Anda 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.
Dalam repositori yang Anda download, terdapat 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 ditetapkan, 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 Pemohon Membayar. |
EMAIL |
Alamat email Anda. |
Menjalankan pipeline
Di direktori
sentieon-google-genomics
, edit fileexamples/example.json
, ganti 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 akan 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 preemptible, pipeline akan dimulai ulang setiap kali instance-nya di-preempt. Setelah selesai, pipeline akan menampilkan pesan ke konsol yang menyatakan apakah pipeline berhasil atau gagal.
Konfigurasi yang direkomendasikan
Untuk sebagian besar situasi, Anda dapat mengoptimalkan waktu penyelesaian dan biaya menggunakan konfigurasi berikut. Konfigurasi ini menjalankan genom manusia 30x dengan biaya sekitar $1,25 dan memerlukan waktu sekitar 2 jam. Exome utuh manusia berkisaran biaya sekitar $0,35 dan memerlukan waktu sekitar 45 menit. Kedua estimasi ini didasarkan pada instance pipeline yang tidak didahului.
{ "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 ini mendukung beberapa file fastq yang dipisahkan koma sebagai input, seperti yang ditunjukkan oleh 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 disejajarkan dengan genom referensi.
Sebagai gantinya, proses ini dimulai pada tahap penghapusan duplikat data di pipeline. Contoh
berikut menunjukkan konfigurasi yang menggunakan dua file BAM sebagai input:
"BAM": "gs://my-bucket/s1_prep1.bam,gs://my-bucket/s1_prep2.bam"
Konfigurasi data whole-exome atau set data besar
Setelan dalam konfigurasi yang direkomendasikan dioptimalkan untuk sampel genom utuh manusia yang diurutkan dengan cakupan rata-rata 30x. Untuk file yang jauh lebih kecil atau lebih besar dari set data genom lengkap standar, Anda dapat meningkatkan atau menurunkan resource yang tersedia untuk instance. Untuk 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 preemptible di pipeline dengan menetapkan kunci JSON PREEMPTIBLE_TRIES
.
Secara default, runner mencoba menjalankan pipeline dengan instance standar jika upaya preemptible habis atau jika kunci JSON NONPREEMPTIBLE_TRY
ditetapkan ke 0
. Anda dapat menonaktifkan perilaku ini dengan menetapkan
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 percobaan pipeline saat menggunakan instance yang dapat di-preempt. |
NONPREEMPTIBLE_TRY |
Menentukan apakah akan mencoba menjalankan pipeline dengan instance standar setelah upaya preemptible habis. |
Grup yang diambil datanya
Grup baca ditambahkan saat file fastq disejajarkan dengan genom
referensi menggunakan Sentieon® BWA. Anda dapat menyediakan beberapa grup baca yang dipisahkan koma.
Jumlah grup baca harus cocok 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 metadata sampel. |
Untuk informasi selengkapnya tentang grup baca, lihat Grup baca.
Input streaming 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 pemberian tanda 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 memberikan kunci JSON BQSR_SITES
ke situs yang diketahui. Jika disediakan, file DBSNP
dapat digunakan untuk menganotasi varian output selama pemanggilan 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 diketahui. |
DBSNP |
File dbSNP yang digunakan selama panggilan varian. |
Interval
Untuk beberapa aplikasi, seperti penentuan urutan eksom keseluruhan atau yang ditargetkan, Anda mungkin
hanya tertarik pada sebagian genom. Dalam kasus tersebut, menyediakan file
interval target dapat mempercepat pemrosesan dan mengurangi panggilan varian
off-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 untuk diproses. |
INTERVAL |
String yang berisi interval genom yang akan diproses. |
Opsi output
Secara default, pipeline menghasilkan BAM yang telah diproses sebelumnya, metrik kontrol kualitas, dan panggilan varian. Anda dapat menonaktifkan 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. |
NO_METRICS |
Menentukan apakah akan menampilkan metrik file. |
NO_HAPLOTYPER |
Menentukan apakah akan menampilkan panggilan varian. |
GVCF_OUTPUT |
Menentukan apakah akan menampilkan panggilan varian dalam format gVCF. |
Versi Sentieon® DNASeq®
Anda dapat menggunakan paket software Sentieon® DNASeq® versi terbaru 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 Anda tidak akan ditagih untuk resource tersebut di masa mendatang. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan 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 Hapus 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.