Nextflow の実行

このページでは、Cloud Life Sciences API と Nextflow を使用して、Google Cloud Platform でパイプラインを実行する方法について説明します。

このチュートリアルで使用するパイプラインは、Google Cloud Platform での Nextflow の使用を示すことを目的とした RNA-Seq パイプラインの概念実証として記しています。

目標

このチュートリアルを完了すると、以下のことが行えます。

  • Cloud Shell で Nextflow をインストールする
  • Nextflow パイプラインを構成して Cloud Life Sciences API を使用する
  • Google Cloud Platform で Nextflow を使用してパイプラインを実行する

費用

このチュートリアルでは、以下を含む、Google Cloud Platform の課金対象となるコンポーネントを使用します。

  • Compute Engine
  • Cloud Storage

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。 Cloud Platform を初めて使用される方は、無料トライアルをご利用いただけます。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud Genomics、Compute Engine、Cloud Storage必要な API を有効にします。

    API を有効にする

Cloud Storage バケットの作成

バケットとオブジェクトの命名ガイドラインで概要を示したガイドラインに沿って、一意の名前のバケットを作成し、このチュートリアルの期間を通して一時的な作業ファイルと出力ファイルを保存します。

Console

  1. GCP Console で、Cloud Storage ブラウザを開きます。

    Cloud Storage ブラウザに移動

  2. [バケットを作成] をクリックします。

  3. [バケット名] テキスト ボックスに、BUCKET に選択した名前を入力して、[作成] をクリックします。

gcloud

  1. Cloud Shell を開きます。

    Cloud Shell に移動

  2. 次のコマンドを使用してバケットを作成します。

    gsutil mb gs://BUCKET
    

Cloud Shell での Nextflow のインストールと構成

マシンにソフトウェアをインストールするのを避けるには、Cloud Shell からこのチュートリアルのすべてのターミナル コマンドを実行します。

  1. Cloud Shell を開きます。

    Cloud Shell に移動

  2. Cloud Shell に Nextflow をインストールします。

    export NXF_VER=19.01.0
    export NXF_MODE=google
    curl https://get.nextflow.io | bash
    
  3. 実行するパイプラインと使用するサンプルデータの両方を含む、サンプル パイプライン リポジトリのクローンを作成します。

    git clone https://github.com/nextflow-io/rnaseq-nf.git
    
  4. Nextflow を構成し、Cloud Life Sciences API を使用して実行します。

    1. rnaseq-nf フォルダに移動します。

      cd rnaseq-nf
      

    2. 次のテキストをコピーし、nextflow.config という名前のファイルの末尾に貼り付けます。PROJECT_ID 変数と REGION 変数を使用する値に置き換えます。REGION 変数は、us-central1 など、実行場所となるリージョンです。以下のセクションが構成ファイルに存在する場合は、セクションを以下の値に置き換えます。

      process {
         executor = 'google-pipelines'
      }
      
      cloud {
         instanceType = 'n1-standard-1'
      }
      
      google {
         project = 'PROJECT_ID'
         region = 'REGION'
      }
      
    3. 前のフォルダに戻ります

      cd ..
      

Nextflow でパイプラインを実行する

  1. Nextflow でパイプラインを実行します。

    ./nextflow run rnaseq-nf/main.nf -w gs://BUCKET/WORK_DIR
    
  2. Cloud Shell で引き続き Nextflow が実行されます。

Nextflow パイプラインの出力の表示

パイプラインが終了したら、出力、ログ、エラー、コマンド実行、一時ファイルを確認できます。

最終出力ファイルは、Cloud Storage インスタンスの results/qc_report.html ファイルとして保存されます。

各タスクと中間ファイルの個々の出力ファイルを確認するには:

Console

  1. Cloud Storage Console で、Storage ブラウザページを開きます。

    Cloud Storage ブラウザに移動

  2. パイプラインの実行時に指定した BUCKETWORK_DIR に移動します。

  3. パイプラインで実行されたタスクごとにフォルダがあります。

  4. フォルダには、実行されたコマンド、出力ファイル、ワークフローで使用される一時ファイルが格納されます。

gcloud

  1. Cloud Shell で出力ファイルを表示するには、まず Cloud Shell を開きます。

    Cloud Shell に移動

  2. 次のコマンドを実行して、Cloud Storage バケットの出力を一覧表示します。

    gsutil ls gs://BUCKET/WORK_DIR
    
  3. 出力では、実行された各タスクのフォルダが表示されます。後続のサブディレクトリのコンテンツの一覧表示を続行し、パイプラインによって作成されたすべてのファイルを表示します。

    gsutil ls gs://BUCKET/WORK_DIR/FOLDER/TASK_FOLDER
    

パイプラインで作成された中間ファイルを表示し、保存するファイルを選択するか、それらを削除して Cloud Storage に関連する費用を削減できます。ファイルを削除するには、Cloud Storage バケット内の中間ファイルの削除をご覧ください。

トラブルシューティング

  • パイプラインの実行中に問題が発生した場合は、Cloud Life Sciences API のトラブルシューティングをご覧ください。

  • パイプラインが失敗した場合は、.command.out.command.log.command.err など、Cloud Storage の各フォルダにあるログファイルを見ることで、各タスクのログを確認できます。

クリーンアップ

このチュートリアルで使用するリソースについて、Google Cloud Platform アカウントに課金されないようにする手順は次のとおりです。

「GATK Best Practices パイプラインの実行」が終了したら、GCP で作成したリソースをクリーンアップして、今後料金が発生しないようにします。以下のセクションで、このようなリソースを削除または無効にする方法を説明します。

Cloud Storage バケット内の中間ファイルの削除

パイプラインを実行すると、中間ファイルが gs://BUCKET/WORK_DIR に保存されます。ワークフローの完了後にファイルを削除すると、Cloud Storage の料金を削減できます。

ディレクトリで使用されている容量を表示するには:

gsutil du -sh gs://BUCKET/WORK_DIR

作業ディレクトリからファイルを削除するには:

Console

  1. Cloud Storage Console で、Storage ブラウザページを開きます。

    Cloud Storage ブラウザに移動

  2. パイプラインの実行時に指定した BUCKETWORK_DIR に移動します。

  3. サブフォルダを参照し、不要なファイルまたはディレクトリを削除します。すべてのファイルを削除するには、WORK_DIR 全体を削除します。

gcloud

  1. Cloud Shell を開き、次のコマンドを実行します。

    Cloud Shell に移動

  2. WORK_DIR ディレクトリ内のすべての中間ファイルを削除するには:

    gsutil -m rm gs://BUCKET/WORK_DIR/**
    

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除する手順は次のとおりです。

  1. GCP Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ