Tutorial ini menjelaskan cara menjalankan pipeline Nextflow
di Batch. Secara khusus, tutorial ini menjalankan
contoh pipeline ilmu hayati rnaseq-nf
dari Nextflow,
yang mengukur fitur genomik 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.
- Konfigurasikan pipeline Nextflow.
- Jalankan contoh pipeline menggunakan Nextflow di Batch.
- Melihat output pipeline.
- Bersihkan untuk menghindari tagihan tambahan dengan melakukan salah satu tindakan berikut:
- Menghapus project.
- Menghapus resource satu per satu.
Biaya
Dalam dokumen ini, Anda akan 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 kurang dari satu dolar, dengan asumsi bahwa Anda menyelesaikan semua langkah—termasuk pembersihan—secara tepat waktu.
Sebelum memulai
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Pastikan project Anda memiliki jaringan Virtual Private Cloud (VPC) dengan konfigurasi jaringan yang valid untuk tutorial ini.
Tutorial ini mengasumsikan bahwa Anda menggunakan jaringan
default
. Secara default, resource Google Cloud menggunakan jaringandefault
, yang menyediakan akses jaringan yang diperlukan untuk tutorial ini. -
Pastikan project Anda memiliki setidaknya satu akun layanan dengan izin yang diperlukan untuk menjalankan tugas Batch dalam tutorial ini.
Secara default, tugas menggunakan akun layanan default Compute Engine, yang secara otomatis diberi peran IAM Editor (
roles/editor
) dan sudah memiliki semua izin yang diperlukan untuk tutorial ini.Untuk memastikan bahwa akun layanan tugas memiliki izin yang diperlukan untuk mengizinkan agen layanan Batch membuat dan mengakses resource untuk tugas Batch, minta administrator untuk memberikan akun layanan tugas peran IAM berikut:
-
Batch Agent Reporter (
roles/batch.agentReporter
) di project -
Storage Admin (
roles/storage.admin
) di project -
(Direkomendasikan) Izinkan tugas membuat log di Cloud Logging:
Logs Writer (
roles/logging.logWriter
) di project
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan tugas melalui peran khusus atau peran bawaan 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 untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) di project -
Service Account User (
roles/iam.serviceAccountUser
) di akun layanan tugas -
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 output dan pekerjaan 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 Bucket.
Klik
Create.Di halaman Create a bucket, masukkan nama yang unik secara global untuk bucket Anda.
Klik Create.
Di jendela Public access will be prevented, klik Confirm.
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 mirip dengan berikut:
Creating gs://BUCKET_NAME/...
```
Mengonfigurasi Nextflow
Untuk mengonfigurasi pipeline Nextflow agar berjalan di Batch, ikuti langkah-langkah berikut di command line:
Clone repositori pipeline contoh:
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
gcb
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 = 'REGION' }
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
.Ganti
REGION
dengan region yang akan digunakan.Misalnya, masukkan
us-central1
.Setelah kolom
google.region
, tambahkan kolom berikut:Tambahkan kolom
google.project
:google.project = 'PROJECT_ID'
Ganti
PROJECT_ID
dengan project ID project Google Cloud saat ini.Jika Anda tidak menggunakan akun layanan default Compute Engine sebagai akun layanan tugas, tambahkan kolom
google.batch.serviceAccountEmail
:google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
Ganti
SERVICE_ACCOUNT_EMAIL
dengan alamat email akun layanan tugas yang Anda siapkan untuk tutorial ini.
Untuk menyimpan hasil edit, lakukan langkah-langkah 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. Penyelesaian operasi ini mungkin memerlukan waktu hingga 10 menit.
Setelah pipeline selesai berjalan, output-nya akan mirip 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 dalam file results/qc_report.html
dalam folder WORK_DIRECTORY
di bucket Cloud Storage Anda.
Untuk memeriksa file output pipeline di folder WORK_DIRECTORY
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 Bucket.
Di kolom Name, klik nama bucket yang Anda buat di langkah sebelumnya.
Di halaman Detail bucket, buka folder
WORK_DIRECTORY
.
Ada folder untuk setiap tugas terpisah yang dijalankan alur kerja. Setiap folder berisi perintah yang dijalankan, file output, dan file sementara yang dibuat oleh pipeline.
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 di langkah sebelumnya.WORK_DIRECTORY
: direktori yang Anda tentukan dalam filenextflow.config
.
Output 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Jika Anda ingin terus menggunakan project saat ini, hapus setiap 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 tagihan 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 menggunakan konsol Google Cloud, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Bucket.
Di kolom Name, klik nama bucket yang Anda buat di langkah sebelumnya.
Di halaman Detail bucket, pilih baris yang berisi folder
WORK_DIRECTORY
, lalu lakukan hal berikut:Klik Hapus.
Untuk mengonfirmasi, masukkan
DELETE
, lalu klik Hapus.
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 di 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 lebih lanjut proses, pembuatan skrip, dan opsi konfigurasi Nextflow, lihat dokumentasi Nextflow.