-
Notifications
You must be signed in to change notification settings - Fork 5
How to use (v0.2)
GenomonPipelineCloud-v0.2 はAWSのみ対応です
Mac や Linux の場合、OS 付属のターミナルをご使用ください。 Windows の場合、cygwin もしくは Ubuntsu on Windows で動作することを確認しています。
awscli は AWS の操作をコマンドラインで出来るようにしたものです。 インストールおよび設定の手順はこちらを参照してください。
ecsub は AWS Elastic Container Service (ECS) を利用したタスクの作成と実行を1コマンドで利用可能にしたバッチジョブ実行エンジンです。 Univa Grid Engine (UGE) における qsub の代わりに使用します。
以下の手順でインストールします。
cd ~
wget https://github.com/aokad/ecsub/archive/v0.0.4.zip
unzip v0.0.4.zip
cd ecsub-0.0.4
python setup.py build install
インストールできたら、AWS で必要な権限を設定します。 手順は以下を参照してください。
ecsub の動作確認をします。
まず S3バケットの準備が必要です。 ecsub をダウンロードしたディレクトリに example という名前のディレクトリがあり、その中にテストデータが入っていますので、S3バケットにアップロードします。 以下の手順で行います。
- 1)S3バケットを任意の名前で作成します
- 2)./examples/tasks-wordcount.tsv の中の "ecsub-singapore" を1) で作成したバケット名に置き換えます
- 3)1)で作成したバケットに example ディレクトリにある wordcount.py, hamlet.txt, kinglear.txt をコピーします。 /examples/tasks-wordcount.tsv で記載しているパスと同じになるように配置してください
$ cat examples/tasks-wordcount.tsv
--env NAME --input INPUT_FILE --input-recursive SCRIPT --output OUTPUT_FILE
Hamlet s3://ecsub-singapore/wordcount/input/hamlet.txt s3://ecsub-singapore/wordcount/python s3://ecsub-singapore/output/hamlet-count.txt
Kinglear s3://ecsub-singapore/wordcount/input/kinglear.txt s3://ecsub-singapore/wordcount/python s3://ecsub-singapore/output/kinglear-count.txt
ecsub の動作確認をします。
bucket=s3://{1) で作成したバケット名}
ecsub_root={ecsubをダウンロードしたディレクトリ}
ecsub submit \
--script ${ecsub_root}/examples/run-wordcount.sh \
--tasks ${ecsub_root}/examples/tasks-wordcount.tsv \
--aws-s3-bucket ${bucket}/output/ \
--wdir /tmp/ecsub/ \
--image python:2.7.14 \
--aws-ec2-instance-type t2.micro \
--disk-size 22
S3 バケットの output ディレクトリに hamlet-count.txt と kinglear-count.txt ができていれば成功です。
ecsub のテスト実行は成功しましたか? 次は genomon-pipeline-cloud のインストールと環境設定を行います。
以下の手順でインストールします。
cd ~
wget https://github.com/Genomon-Project/genomon_pipeline_cloud/archive/v0.2.1.zip
unzip v0.2.1.zip
cd genomon_pipeline_cloud-0.2.1
python setup.py build install
次に解析に使用するリファレンスゲノムやシーケンスデータを任意のS3バケットにアップロードします。
-
1)S3にリファレンスゲノムをおきます S3 リファレンスファイル用のバケットを作成し、リファレンス (https://genomon-portal.hgc.jp/data/_GRCh37.zip) をダウンロードして解凍してuploadします。 32Gありますので、結構時間がかかります。
-
2)レポート機能の設定ファイルを1)で作成したバケットにコピーします。 レポート作成機能 (paplot) の設定ファイルは以下よりダウンロードできます
-
3)シーケンスデータ (.fastq, ペアリードのみ) をS3 にアップロードします。
アップロードしたデータのパスに合わせて genomon-pipeline-cloud の設定ファイルを編集します。 genomon-pipeline-cloud をダウンロードしたディレクトリに example_conf というディレクトリがあります。 その中にパラメータ設定ファイル (.cfg) とサンプル設定ファイル (.csv) のテンプレートがありますので、編集して使用します。
-
4)param_dna_ecsub.cfg をエディタで開き、"s3://genomon-bucket/" という記述を1)で作成したバケット名に置換します。
-
5)sample_dna.csv を開いて、3)でアップロードしたサンプルのパスになるよう編集します。基本的な記載方法は本家ドキュメントを参照してください
設定が終わったら、Quick Start を動かして動作確認します。
${YOUR_BUCKET}/genomon_pipeline_cloud_test
ディレクトリに paplot/sample_dna/paplot.tar.gz
ができていれば成功です。
基本的な使い方はGenomonPipelineと同様ですので、詳しくは本家ドキュメントを参照ください。
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コンソールからインスタンスを削除するようにしてください。
以下はオプションですので、必要に応じて設定してください。
AWSには同時に作成できるインスタンスの数に制限(大体20)があります。 デフォルトのままでは同時に解析できるサンプル数はおよそ4程度ですので、以下の手順で制限緩和を行います。 ※制限緩和を行なっても実際にインスタンスを作成しない限りコストはかかりませんので可能であれば、制限緩和を行うことをお勧めします。
AWSコンソールから「EC2」→「制限」より以下項目で制限緩和のリクエストを出します。
- 実行中のオンデマンドインスタンスの数: EC2
- 実行中のオンデマンドインスタンスの数: (使用したいインスタンスタイプ)
レポートを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"
}
}
}
]
}
以下のようにしてパケットポリシーを設定します
S3バケット→「アクセス権限」→「アクセスコントロールリスト」→ 「他のAWSアカウントのアクセス」→「+アカウントの追加」 AWSアカウントを記入して、「バケットの読み取りアクセス権限」にチェックして「保存」
開発中のため、以下内容で既存のGenomonPipeline (v2.5.3) との機能差があります。
- コントロールパネルに未対応
- アノテーションを付与に未対応
- 解析結果のマージ機能に未対応
- 途中で止めて再開した時、すでに終了しているステージをスキップできない