まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

re:Inventでゲノム解析のワークショップ受けてきた

AWS re:Inventでのworkshopとは?

2時間ぐらい使って実際にAWS上でなんらかの処理をするやつです。 今回、ぼくがやったのは、High-Throughput Genomics on AWSという、 ゲノム解析をAWS上でやるというやつでした。なんかECSって書いてあったからノコノコと参加したけど全然意味不明だった・・ これじゃ受けた意味ないなってことで帰ってきてから理解しなおしました。

講義内容のスライドが追加されていたのでよければ

っていうかまず、ゲノム解析がよくわからん

DNA 塩基配列を文字列で表現するの記事が分かりやすかった。

  • DNA の塩基配列は ATGC の 4 文字からなる文字列で表現できます。
  • 二本鎖 DNA や二本鎖 RNA を 1 次元配列で表現できるのは、塩基対によって相補鎖を求められるため。
  • DNA や RNA について調べるときに文字列の問題として計算機上で扱えば、文字列のアルゴリズムを適用できます。

要はDNAって、ATGCの4文字で表現できるので、大量の文字列を解析すれば色々分かるよってのがゲノム解析って感じです。

ゲノム解析には、塩基配列を整列させたり、違うところを見つけたりとかそういうことをなんか色んなアルゴリズムというか計算手法で計算させていくみたいです。

簡単に言えば、銀行とかでコボルでバッチ回してなんか色々処理してくみたいなものと言えます(暴言) ただ、元となるデータがすごく大きい(数百GBとか?なんかよくわからないけど多分大きいとおもってください)ので、すごい強いマシンじゃないと計算が終わらないっていうやつ。それをAWSを使って解決しましょうと言う話でした。

そういうピタゴラスイッチ的にデータをバッチ処理していくには

こういうスタックを使って実現する

f:id:masato47744:20180125005906p:plain

スタック 役割
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が実行していう様子が見れるというのができあがる。

f:id:masato47744:20180125005920p:plain

まとめ

確かにこれが終わった後、S3に何かがおいてあったけど、それが何かはゲノムのことがよくわからないのでいまだにわからない。 ただ、大規模計算バッチ処理みたいなものを作るっていうのはこういう風に作れちゃうんだなーっていうのと、Dockerの波すげえなっていう感想でした。