Tutorial ini menjelaskan cara menjalankan pipeline Nextflow pada Batch. Secara khusus, tutorial ini menjalankan contoh pipeline ilmu hayati yang mengukur fitur genom dari data pembacaan singkat menggunakan RNA-Seq.
Tutorial ini ditujukan untuk pengguna Batch yang ingin menggunakan Nextflow dengan Batch.
Nextflow adalah software open source untuk mengorkestrasi alur kerja bioinformatika.
Tujuan
Dengan menyelesaikan tutorial ini, Anda akan mempelajari cara melakukan hal berikut:
- Instal Nextflow di Cloud Shell.
- Membuat bucket Cloud Storage.
- Mengonfigurasi pipeline Nextflow.
- Menjalankan contoh pipeline menggunakan Nextflow di Batch.
- Melihat output pipeline.
- Pembersihan agar tidak menimbulkan biaya tambahan dengan melakukan salah satu tindakan berikut:
- Menghapus project.
- Menghapus resource satu per satu.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Batch
- Cloud Storage
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Resource yang dibuat dalam tutorial ini biasanya berbiaya lebih rendah daripada satu dolar, dengan asumsi Anda menyelesaikan semua langkah—termasuk pembersihan—secara tepat waktu.
Sebelum memulai
- 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.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat atau pilih project Google Cloud.
-
Membuat project Google Cloud:
gcloud projects create PROJECT_ID
Ganti
PROJECT_ID
dengan nama untuk project Google Cloud yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_ID
dengan nama project Google Cloud Anda.
-
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Batch, Cloud Storage, Compute Engine, and Logging:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat atau pilih project Google Cloud.
-
Membuat project Google Cloud:
gcloud projects create PROJECT_ID
Ganti
PROJECT_ID
dengan nama untuk project Google Cloud yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_ID
dengan nama project Google Cloud Anda.
-
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Batch, Cloud Storage, Compute Engine, and Logging:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Pastikan project Anda memiliki setidaknya satu akun layanan dengan izin yang diperlukan untuk tutorial ini.
Setiap tugas memerlukan akun layanan yang memungkinkan agen layanan Batch membuat dan mengakses resource yang diperlukan untuk menjalankan tugas. Untuk tutorial ini, akun layanan tugas adalah akun layanan default Compute Engine.
Untuk memastikan akun layanan default Compute Engine memiliki izin yang diperlukan guna mengizinkan agen layanan Batch membuat dan mengakses resource untuk tugas Batch, minta administrator Anda untuk memberikan peran IAM berikut kepada akun layanan default Compute Engine:
-
Batch Agent Reporter (
roles/batch.agentReporter
) pada project -
Storage Admin (
roles/storage.admin
) pada project -
(Direkomendasikan) Izinkan tugas menghasilkan log di Cloud Logging:
Logs Writer (
roles/logging.logWriter
) pada project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Administrator Anda mungkin juga dapat memberi akun layanan default Compute Engine izin yang diperlukan melalui peran khusus atau peran standar lainnya.
-
Batch Agent Reporter (
-
Pastikan Anda memiliki izin yang diperlukan untuk tutorial ini.
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) pada project -
Service Account User (
roles/iam.serviceAccountUser
) pada akun layanan tugas, yang untuk tutorial ini adalah akun layanan default Compute Engine -
Storage Object Admin (
roles/storage.objectAdmin
) pada project
-
Batch Job Editor (
-
Instal Nextflow:
curl -s -L https://github.com/nextflow-io/nextflow/releases/download/v23.04.1/nextflow | bash
Outputnya akan mirip dengan berikut ini:
N E X T F L O W version 23.04.1 build 5866 created 15-04-2023 06:51 UTC cite doi:10.1038/nbt.3820 http://nextflow.io Nextflow installation completed. Please note: - the executable file `nextflow` has been created in the folder: ... - you may complete the installation by moving it to a directory in your $PATH
Membuat bucket Cloud Storage
Untuk membuat bucket Cloud Storage guna menyimpan file kerja dan output sementara dari pipeline Nextflow, gunakan Konsol Google Cloud atau command line.
Konsol
Untuk membuat bucket Cloud Storage menggunakan Konsol Google Cloud, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Buckets.
Klik
Create.Di halaman Create a bucket, masukkan nama unik global untuk bucket Anda.
Klik Create.
Di jendela Public access will be prevented, klik Confirm.
Command line
gcloud
Untuk membuat bucket Cloud Storage menggunakan Google Cloud CLI, gunakan perintah gcloud storage buckets create
.
gcloud storage buckets create gs://BUCKET_NAME
Ganti BUCKET_NAME
dengan nama yang unik secara global untuk bucket Anda.
Jika permintaan berhasil, output-nya akan terlihat seperti berikut:
Creating gs://BUCKET_NAME/...
gsutil
Untuk membuat bucket Cloud Storage menggunakan alat gsutil, gunakan perintah gsutil mb
.
gsutil mb gs://BUCKET_NAME
Ganti BUCKET_NAME
dengan nama yang unik secara global untuk bucket Anda.
Jika permintaan berhasil, output-nya akan terlihat seperti berikut:
Creating gs://BUCKET_NAME/...
Mengonfigurasi Nextflow
Untuk mengonfigurasi pipeline Nextflow agar berjalan pada Batch, ikuti langkah-langkah berikut di command line:
Clone repositori pipeline sampel:
git clone https://github.com/nextflow-io/rnaseq-nf.git
Buka folder
rnaseq-nf
:cd rnaseq-nf
Buka file
nextflow.config
:nano nextflow.config
File harus berisi bagian berikut:
gcb { params.transcriptome = 'gs://rnaseq-nf/data/ggal/transcript.fa' params.reads = 'gs://rnaseq-nf/data/ggal/gut_{1,2}.fq' params.multiqc = 'gs://rnaseq-nf/multiqc' process.executor = 'google-batch' process.container = 'quay.io/nextflow/rnaseq-nf:v1.1' workDir = 'gs://BUCKET_NAME/WORK_DIRECTORY' google.region = 'us-central1' } ...
Di bagian
gcb
, lakukan hal berikut:Ganti
BUCKET_NAME
dengan nama bucket Cloud Storage yang Anda buat di langkah sebelumnya.Ganti
WORK_DIRECTORY
dengan nama untuk folder baru yang dapat digunakan pipeline untuk menyimpan log dan output.Misalnya, masukkan
workDir
.Setelah kolom
google.region
, tambahkan barisgoogle.project = 'PROJECT_ID'
, di manaPROJECT_ID
adalah project ID dari project Google Cloud saat ini.
Untuk menyimpan hasil edit, lakukan tindakan berikut:
Tekan
Control+S
.Masukkan
Y
.Tekan
Enter
.
Menjalankan pipeline
Jalankan contoh pipeline Nextflow menggunakan command line:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
Pipeline menjalankan set data kecil menggunakan setelan yang Anda berikan pada langkah sebelumnya. Operasi ini mungkin memerlukan waktu hingga 10 menit sampai selesai.
Setelah pipeline selesai berjalan, output-nya akan serupa dengan berikut:
N E X T F L O W ~ version 23.04.1
Launching `https://github.com/nextflow-io/rnaseq-nf` [crazy_curry] DSL2 - revision: 88b8ef803a [master]
R N A S E Q - N F P I P E L I N E
===================================
transcriptome: gs://rnaseq-nf/data/ggal/transcript.fa
reads : gs://rnaseq-nf/data/ggal/gut_{1,2}.fq
outdir : results
Uploading local `bin` scripts folder to gs://example-bucket/workdir/tmp/53/2847f2b832456a88a8e4cd44eec00a/bin
executor > google-batch (4)
[67/71b856] process > RNASEQ:INDEX (transcript) [100%] 1 of 1 ✔
[0c/2c79c6] process > RNASEQ:FASTQC (FASTQC on gut) [100%] 1 of 1 ✔
[a9/571723] process > RNASEQ:QUANT (gut) [100%] 1 of 1 ✔
[9a/1f0dd4] process > MULTIQC [100%] 1 of 1 ✔
Done! Open the following report in your browser --> results/multiqc_report.html
Completed at: 20-Apr-2023 15:44:55
Duration : 10m 13s
CPU hours : (a few seconds)
Succeeded : 4
Melihat output pipeline
Setelah selesai berjalan, pipeline akan menyimpan file output, log, error, atau file sementara di file results/qc_report.html
dalam folder WORK_DIRECTORY
di bucket Cloud Storage Anda.
Untuk memeriksa file output pipeline di folder WORK_DIRECTORY
pada bucket Cloud Storage, Anda dapat menggunakan konsol Google Cloud atau command line.
Konsol
Untuk memeriksa file output pipeline menggunakan Konsol Google Cloud, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Buckets.
Di kolom Name, klik nama bucket yang Anda buat di langkah sebelumnya.
Di halaman Bucket details, buka folder
WORK_DIRECTORY
.
Terdapat folder untuk setiap tugas terpisah yang dijalankan alur kerja. Setiap folder berisi perintah yang dijalankan, file output, dan file sementara yang dibuat oleh pipeline.
Command line
gcloud
Untuk memeriksa file output pipeline menggunakan gcloud CLI, gunakan perintah gcloud storage ls
.
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang Anda buat pada langkah sebelumnya.WORK_DIRECTORY
: direktori yang Anda tentukan dalam filenextflow.config
.
Outputnya mencantumkan folder untuk setiap tugas terpisah yang dijalankan pipeline. Setiap folder berisi perintah yang dijalankan, file output, dan file sementara yang dibuat oleh pipeline.
gsutil
Untuk memeriksa file output pipeline menggunakan alat gsutil, gunakan perintah gsutil ls
.
gsutil ls gs://BUCKET_NAME/WORK_DIRECTORY
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang Anda buat pada langkah sebelumnya.WORK_DIRECTORY
: direktori yang Anda tentukan dalam filenextflow.config
.
Outputnya mencantumkan folder untuk setiap tugas terpisah yang dijalankan pipeline. Setiap folder berisi perintah yang dijalankan, file output, dan file sementara yang dibuat oleh pipeline.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project saat ini.
Untuk menghapus project saat ini, gunakan konsol Google Cloud atau gcloud CLI.
Konsol
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
gcloud
Menghapus project Google Cloud:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Jika ingin terus menggunakan project saat ini, hapus masing-masing resource yang digunakan dalam tutorial ini.
Menghapus bucket
Jika Anda tidak lagi memerlukan bucket yang digunakan dalam tutorial ini, hapus bucket.
Menghapus file output di bucket
Setelah selesai berjalan, pipeline akan membuat dan menyimpan file output di folder WORK_DIRECTORY
bucket Cloud Storage Anda.
Untuk mengurangi biaya Cloud Storage ke akun Google Cloud saat ini, Anda dapat menghapus folder yang berisi file output pipeline menggunakan konsol Google Cloud atau command line.
Konsol
Untuk menghapus folder WORK_DIRECTORY
dan semua file output dari bucket Cloud Storage Anda menggunakan Konsol Google Cloud, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Buckets.
Di kolom Name, klik nama bucket yang Anda buat di langkah sebelumnya.
Di halaman Bucket details, pilih baris yang berisi folder
WORK_DIRECTORY
, lalu lakukan tindakan berikut:Klik Delete.
Untuk mengonfirmasi, masukkan
DELETE
, lalu klik Hapus.
Command line
gcloud
Untuk menghapus folder WORK_DIRECTORY
dan semua file output dari bucket Cloud Storage menggunakan gcloud CLI, gunakan perintah gcloud storage rm
dengan flag --recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang Anda tentukan pada langkah sebelumnya.WORK_DIRECTORY
: direktori untuk menyimpan file output pipeline yang Anda tentukan di langkah sebelumnya.
gsutil
Untuk menghapus folder WORK_DIRECTORY
dan semua file output, dari bucket Cloud Storage menggunakan alat gsutil, gunakan perintah gsutil rm
dengan opsi -m
dan -r
.
gsutil -m rm -r gs://BUCKET_NAME/WORK_DIRECTORY
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang Anda tentukan pada langkah sebelumnya.WORK_DIRECTORY
: direktori untuk menyimpan file output pipeline yang Anda tentukan di langkah sebelumnya.
Langkah selanjutnya
Untuk mempelajari lebih lanjut cara men-deploy alur kerja Nextflow, lihat Repositori GitHub Nextflow.
Untuk mempelajari proses, pembuatan skrip, dan opsi konfigurasi Nextflow, lihat Dokumentasi Nextflow.