dsub の実行

dsub は、Google Cloud でバッチ処理タスクやワークフローを実行するために使用できるコマンドライン ツールです。

目標

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

  • DNA シーケンスの大規模バイナリ ファイル(BAM ファイル)からインデックス(BAI ファイル)を作成する dsub パイプラインを Google Cloud で実行する

費用

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

  • Compute Engine
  • Cloud Storage

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

始める前に

  1. Python 3.5 以上をインストールします。pip のシステムへのインストールなど、Python 開発環境の設定について詳しくは、Python 開発環境のセットアップ ガイドをご覧ください。
  2. Google アカウントにログインします。

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

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

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

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

  5. Google Genomics, Compute Engine, and Cloud Storage API を有効にします。

    API を有効にする

BAI ファイルを作成する

次に示す手順を完了すると、DNA シーケンスの大規模バイナリ ファイル(BAM ファイル)からインデックス(BAI ファイル)が作成されます。このデータは、1,000 人ゲノム プロジェクトからのものです。

  1. GitHub リポジトリ databiosphere/dsub のクローンを作成し、dsub ツールのディレクトリに移動します。このリポジトリの中にある、事前ビルドされた Docker イメージが samtools を使用してインデックス作成を行います。

    git clone https://github.com/databiosphere/dsub.git
    cd dsub
    
  2. dsub とその依存関係をインストールします。

    python setup.py install
    
  3. dsub ツールを実行して BAI ファイルを作成します。PROJECT_ID は Google Cloud プロジェクトに置き換え、BUCKET は書き込みアクセス権を持つ Cloud Storage バケットに置き換えてください。

    dsub \
        --provider google-cls-v2 \
        --project PROJECT_ID \
        --logging gs://BUCKET/logs \
        --input BAM=gs://genomics-public-data/1000-genomes/bam/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam \
        --output BAI=gs://BUCKET/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai \
        --image quay.io/cancercollaboratory/dockstore-tool-samtools-index \
        --command 'samtools index ${BAM} ${BAI}' \
        --wait
    

    samtools コマンドの実行対象であるデータファイルは、--input フラグで指定されます。パイプラインによってファイルとログが Cloud Storage バケットに出力されます。

    複数の入力がある場合は、複数の --input フラグを使用して入力を指定できます。入力は任意の順序で指定できます。次のサンプルは、2 つの入力を指定する方法を示しています。

    ...
    --input INPUT_FILE_1=gs://PATH/TO/INPUT_FILE_1 \
    --input INPUT_FILE_2=gs://PATH/TO/INPUT_FILE_2 \
    ...
    
  4. BAI ファイルが生成されたことを確認します。

    gsutil ls BUCKET
    

    このコマンドは、以下を返します。

    gs://BUCKET/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
    

クリーンアップ

チュートリアルが完了したら、Google Cloud で作成したリソースをクリーンアップして、今後料金が発生しないようにします。以下のセクションでは、このようなリソースを削除または無効にする方法を説明します。

プロジェクトの削除

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

プロジェクトを削除するには:

  1. Cloud Console で、プロジェクト ページに移動します。

    プロジェクト ページに移動

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

次のステップ

GitHub にある dsub のドキュメントを読みます。このドキュメントには、dsub をゲノムデータとともに使用する方法の詳細と例が記載されています。