How to use (v0.1) - Genomon-Project/genomon_pipeline_cloud GitHub Wiki

Setup

1. AWS アカウントを作成しましょう

GenomonPipelineCloud-v0.1 はAWSのみ対応です

2. AWSで以下を用意しましょう

  • [EC2] aws-cli 用 instance 1台 (無料枠対象の t2.micro でよい) (※A)
  • [IAM] 「ユーザ」からアクセスキーを1組作成し、アクセスキーとシークレットキーをダウンロードしておく
  • [IAM] 「ロール」で名称 "awsub-role" を作成し、権限 "AmazonS3FullAccess" を付与する
  • [S3] output用のバケットを作成する (※B)
  • [S3] リファレンスファイル用のバケットを作成し、リファレンス (https://genomon-portal.hgc.jp/data/_GRCh37.zip) をダウンロードして解凍してuploadする (※C)
  • [S3] サンプル用のバケットを作成し、解析したいシーケンスデータ (ペアリードのfastqフォーマット) をuploadする
  • [EC2] limit increase (※D)

(※A) インスタンス起動時オプション

  • セキュリティグループ … 22番ポートを開けてください。IPアドレスによるアクセス制限をかけるとより安心です。
  • キーペア … 立ち上げたインスタンスは ssh ログインして使います。ログインに必要ですので、大切に保管してください。なお、Linux, Mac の場合、ダウンロードしたままではパーミッションの公開範囲でエラーになることがあります。以下のようにしてパーミッションを限定してください。 chmod 400 {ダウンロードした秘密キー}
  • AMI … 我々は "Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-48630c2e" を使用しています

(※B) output用のバケットについて

バケットの中身は空でよいですが、レポートをweb上で表示するのであれば、「static website hosting」を有効にし、以下内容でパケットポリシーを設定します。

# 行はコメントなので、実際は記入しません。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
                # {YOUR-BUCKET} は実際のバケット名
                # "arn:aws:s3:::{YOUR-BUCKET}/*" で全体公開しても良いが
                # レポートディレクトリのみに公開範囲を限定した方が安心
                "arn:aws:s3:::{YOUR-BUCKET}/dna/paplot/*"
            ],
            "Condition": {
                "IpAddress": {
                    # 自分のマシンのグローバルネットワークアドレスを設定した方が安心
                    "aws:SourceIp": "xxx.xxx.xxx.0/24"
                }
            }
        }
    ]
}

(※C) リファレンス用の S3 バケットが異なるアカウントにある場合

以下のようにしてパケットポリシーを設定します

S3バケット→「アクセス権限」→「アクセスコントロールリスト」→ 「他のAWSアカウントのアクセス」→「+アカウントの追加」 AWSアカウントを記入して、「バケットの読み取りアクセス権限」にチェックして「保存」

(※D) オンデマンドインスタンスの制限緩和

AWSには同時に作成できるインスタンスの数に制限(大体20)があります。 デフォルトのままでは同時に解析できるサンプル数はおよそ4程度ですので、以下の手順で制限緩和を行います。 ※制限緩和を行なっても実際にインスタンスを作成しない限りコストはかかりませんので可能であれば、制限緩和を行うことをお勧めします。

AWSコンソールから「EC2」→「制限」より以下項目で制限緩和のリクエストを出します。

  • 実行中のオンデマンドインスタンスの数: EC2
  • 実行中のオンデマンドインスタンスの数: t1.micro
  • 実行中のオンデマンドインスタンスの数: t2.2xlarge
  • 実行中のオンデマンドインスタンスの数: t2.large
  • 実行中のオンデマンドインスタンスの数: t2.medium
  • 実行中のオンデマンドインスタンスの数: t2.micro
  • 実行中のオンデマンドインスタンスの数: t2.nano
  • 実行中のオンデマンドインスタンスの数: t2.small
  • 実行中のオンデマンドインスタンスの数: t2.xlarge

3. [EC2] aws-cli 用 instance にログインして必要なツールをインストール

  • docker-engine
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <[email protected]>
sub   4096R/F273FCD8 2017-02-22


$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce
  • docker-machine
curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && \
install /tmp/docker-machine /usr/local/bin/docker-machine
  • awscli
# apt-get install -y python-pip
# pip install awscli --upgrade
# aws configure
AWS Access Key ID [None]:(ダウンロードしたアクセスキーを入力)
AWS Secret Access Key [None]:(ダウンロードしたシークレットキーを入力)
Default region name [None]:ap-northeast-1
Default output format [None]:json
  • awsub
# wget https://github.com/otiai10/awsub/releases/download/v0.0.9/awsub.linux_amd64.tar.gz
# mkdir ~/bin
# tar -zxvf awsub.linux_amd64.tar.gz -C ~/bin
  • genomon-pipeline-cloud
# cd ~
# wget https://github.com/Genomon-Project/genomon_pipeline_cloud/archive/v0.1.0.tar.gz
# tar -zxvf v0.1.0.tar.gz
# cd genomon_pipeline_cloud-0.1.0/
# pip install . --upgrade

How to use

基本的な使い方はGenomonPipelineと同様ですので、詳しくは本家ドキュメントを参照ください。

Genomon-doc

genomon_pipeline_cloud {解析タイプ (dna or rna)} \
    {サンプル設定ファイル} \
    {解析結果出力先} \
    {パイプライン設定ファイル}

使用例

$ genomon_pipeline_cloud dna \
    ./example_conf/sample_dna.csv \
    s3://${S3_BUCKET}/dna \
    ./example_conf/param_dna_awsub.cfg

注意事項

Ctrl−Cやエラーによりパイプラインが途中で止まってしまった場合、AWS上に解析途中のインスタンスが残ってしまうことがあります。そのままでは課金されてしまいますので、AWSコンソールからインスタンスを削除するようにしてください。

制限事項

開発中のため、以下内容で既存のGenomonPipeline (v2.5.3) との機能差があります。

  • [bam_tofastq],[bam_import] タグに未対応
  • コントロールパネルに未対応
  • アノテーションを付与に未対応
  • 解析結果のマージ機能に未対応
  • 途中で止めて再開した時、すでに終了しているステージをスキップできない