re:Inventでゲノム解析のワークショップ受けてきた
AWS re:Inventでのworkshopとは?
2時間ぐらい使って実際にAWS上でなんらかの処理をするやつです。 今回、ぼくがやったのは、High-Throughput Genomics on AWSという、 ゲノム解析をAWS上でやるというやつでした。なんかECSって書いてあったからノコノコと参加したけど全然意味不明だった・・ これじゃ受けた意味ないなってことで帰ってきてから理解しなおしました。
講義内容のスライドが追加されていたのでよければ
- あと、ブログもあった。 Building High-Throughput Genomics Batch Workflows on AWS: Introduction (Part 1 of 4)
- githubリポジトリ
- handsonの手順
っていうかまず、ゲノム解析がよくわからん
DNA 塩基配列を文字列で表現するの記事が分かりやすかった。
- DNA の塩基配列は ATGC の 4 文字からなる文字列で表現できます。
- 二本鎖 DNA や二本鎖 RNA を 1 次元配列で表現できるのは、塩基対によって相補鎖を求められるため。
- DNA や RNA について調べるときに文字列の問題として計算機上で扱えば、文字列のアルゴリズムを適用できます。
要はDNAって、ATGC
の4文字で表現できるので、大量の文字列を解析すれば色々分かるよってのがゲノム解析って感じです。
ゲノム解析には、塩基配列を整列させたり、違うところを見つけたりとかそういうことをなんか色んなアルゴリズムというか計算手法で計算させていくみたいです。
簡単に言えば、銀行とかでコボルでバッチ回してなんか色々処理してくみたいなものと言えます(暴言) ただ、元となるデータがすごく大きい(数百GBとか?なんかよくわからないけど多分大きいとおもってください)ので、すごい強いマシンじゃないと計算が終わらないっていうやつ。それをAWSを使って解決しましょうと言う話でした。
そういうピタゴラスイッチ的にデータをバッチ処理していくには
こういうスタックを使って実現する
スタック | 役割 |
---|---|
Amazon ECR | 計算処理をするDockerイメージをいれておく |
Docker | ゲノム解析の分野ではもう計算処理はDockerniseされててBioContainersものもある |
Amazon S3 | おっきいrawデータをいれる先 |
AWS Batch | すごく強くてディスク容量もめちゃでかい環境をECSのクラスターをバックグラウンドで動かす。ジョブキューの管理などもできる。ここで実際にコンテナがrunされて計算が行われる |
AWS Lambda | AWS Batch上に登録したjobをキックしたりステータスチェックするだけの役割。Lambda自体はそんなに計算する力とか長い時間動いたりできないのでこういう役割 |
AWS Step Functions | このLambdaを動かしたあとに30秒まって、次にこれとこれのLambdaを並行で動かしてみたいなworkflowを作れるやつ |
この辺のことを、workshopでは、cloudFormationというポチッとなで環境ができあがるやつを、READMEみたいなページを見ながらもくもくと実行していく。英語ができる人同士はわいわいしてた。ぼくはテーブルでぼっち。 で、最後にはこんな感じにStep Funtionsが実行していう様子が見れるというのができあがる。
まとめ
確かにこれが終わった後、S3に何かがおいてあったけど、それが何かはゲノムのことがよくわからないのでいまだにわからない。 ただ、大規模計算バッチ処理みたいなものを作るっていうのはこういう風に作れちゃうんだなーっていうのと、Dockerの波すげえなっていう感想でした。