# 31th Workflow Meetup (8月3日)
================================
[20200803 · workflow\-meetup\-jp/workflow\-meetup Wiki](https://github.com/workflow-meetup-jp/workflow-meetup/wiki/20200803)
2020-08-03(Mon)
13:00 - 19:00 まで。
完全リモートのため、全世界どこからでも参加可能。
# 事前計画
## 石井
- これまでの議事録のworkflow-meetup移動hackmd
- まとめに関しては移動完了
- 第3回から書いていたようだ。
- 今後、githubのwikiへもコピーしておく予定。
- プログラムのリハビリをかねて自分で書いてみる。次回までにできなかったら、西田さんと相談。
- 9月の日程を、9月18日(Fri)、13時から19時にする
- クラウドウィーク、国内版バイオハッカソンを避けるため
## 西田
- AnVIL を試す
- http://bioconductor.org/help/docker/#msft を試す
- http://bioconductor.org/help/bioconductor-cloud-ami/ を読む(AWSを使えないので読むだけ)
- https://github.com/CovertLab/borealis を試す
## 末竹
## 丹生
- ep3 のバックエンドをなんとかしたい
## 大田
- Sapporo deployment on DDBJ をやりたい
# 次回
# こうなりました
## 全体
### Cloudの利用について
- Azure Container Instance
- docker image、CPUとメモリを指定すると、それを実行してくれる
- 上限、メモリ、CPUは4、メモリは6GB
- 他のクラウドサービス
- [AWS/Azure/GCPサービス比較 2020\.07 \- Qiita](https://qiita.com/hayao_k/items/906ac1fba9e239e08ae8)
- AWSだとFargate か Elastic Container Service (ECS)
- GCPだとCloud Run
- AWS の話
- S3
- [AWS Storage Gateway の仕組み \(アーキテクチャ\) \- AWS Storage Gateway](https://docs.aws.amazon.com/ja_jp/storagegateway/latest/userguide/StorageGatewayConcepts.html)
- S3マウントするなら
- Fargate と ECS, EC2
- Fargateでは、CPUとメモリ、コンテナイメージだけを指定したら、勝手にインスタンスサイズを選んでくれる
- いまのところ
- 軽めの処理が想定されており、バイオインフォのがっつり解析とかではなさそう
- ストレージのアタッチとかできない。
- タスクストレージを使えば、インスタンスローカルのストレージを使えそうかもしれない
- ECSは、インスタンスタイプを、コンテナイメージとインスタンスタイプを指定する。
- SSD 使いたいなら、必要なサイズのストレージがあるものをインスタンスタイプから選ぶ
- GCPだと
- Fargateよりもうちょい賢いらしい
- AzureのFargate
- Azure Container Instances
## 石井
- 西田さんに AnVil を紹介してもらう
- GCPの支払い設定があれば、すぐに使える。
- 非常に興味深くお伺いしました。
- [BCC2020: Streamlining accessibility and computabi\.\.\.](https://bcc2020.sched.com/event/coKR/streamlining-accessibility-and-computability-of-large-scale-genomic-datasets-with-the-nhgri-genome-data-science-analysis-visualization-and-informatics-lab-space-anvil)
- BCC2020での発表もあった。
- 5分くらいのながさのビデオ、字幕あり
- どういうプロジェクトなのかという話がきける
- 丹生さんにep3, cwl-inspectorなどの話を伺う
- CWLの解析
- cwl-inspector
- 制御
- ep3 の変換系
- 状態遷移のグラフを吐き出す機能がある。
- 正常系のみではなく、異常系も吐き出せる
```console
$ ep3 init --print-dot --target-dir=transdir foo.cwl
$ dot -T pdf transdir/net.dot -o graph.pdf
```
- バックエンド
- 鋭意作成中
- Rabix Composer の実行エンジンを任意のものに差し替えられるプロジェクト
- 前も丹生さんにうかがかったが、これを動かしてみたいおもった。
- [rabix/custom\-executor: Custom executors for Rabix Composer](https://github.com/rabix/custom-executor)
-
```
$ java -cp src:commons-cli-1.4.jar executors.CwltoolExecutor -h
Print usage here and exit
```
## 西田
基本先週の[BioC2020](http://bioc2020.bioconductor.org/)で見かけたクラウドサービスを試してました。
CWLネタの話もありましたが
https://liubuntu.github.io/Bioc2020RCWL/articles/Bioc2020RCWL.html
これは寝ちゃって聞けてません。もしご興味あれば。
### AnVILを試す
- GCPを使ったbioinfoのワークフロー実行環境をぱぱっと提供してくれるウェブサービスのようです。
- めちゃ簡単。ワークスペースを作る、とクリックするとGoogleアカウントに接続されてすぐにdockstoreにあるワークフローが実行できるようだった
- もしラボのお金でGCPを使えたら使うと思う。
### http://bioconductor.org/help/docker/#msft を試す
location japanwest だとダメそうでした
```
nishida@Azure:~$ az group create --name biocResourceGroup --location japanwest
nishida@Azure:~$ az container create --resource-group biocResourceGroup --name mcr-bioconductor --image mcr.microsoft.com/bioconductor/bioconductor_docker --cpu 2 --memory 4 --dns-name-label mcr-bioconductor --ports 8787 --environment-variables 'PASSWORD'='bioc'
The provided location 'japanwest' is not available for resource type 'Microsoft.ContainerInstance/containerGroups'. List of available regions for the resource type is 'westcentralus,westus,eastus,westeurope,westus2,northeurope,southeastasia,eastus2,centralus,australiaeast,uksouth,southcentralus,centralindia,brazilsouth,southindia,northcentralus,eastasia,canadacentral,japaneast,koreacentral,francecentral'.
```
location を eastus に変えると使えました
お手軽に Bioconductor 環境を試してもらうにはすごくよさそうです。(workshopとかで)
### http://bioconductor.org/help/bioconductor-cloud-ami/ を読む(AWSを使えないので読むだけ)
- starclusterを知る https://github.com/jtriley/StarCluster
- EC2使って簡単にクラスタを作ってくれるソフトのようです
- AWSをラボで使えたらstarcluster使いそう
### https://github.com/CovertLab/borealis を試す
- https://science.sciencemag.org/content/369/6502/eaav3751 のワークフローを実行するためのソフト
- この論文のワークフローは fireworks というワークフローマネージャー用にできている
- borealisはGCPにfireworksを簡単に導入するためのPython packageらしい
- ラボでGCPを使えないのと https://github.com/CovertLab/borealis/blob/master/borealis/setup/how-to-install-gce-server.txt が結構むずかしそうでギブアップ
## 末竹
## 丹生
- ep3 のバックエンドで異常系を簡単に書けるようにしたい
- 並行並列計算を書くための sh みたいなのが欲しい
- 雑に並行並列計算を書きたい
- いい感じのがないので作ろうとしている
- バックエンドは状態遷移システムなので、異常系も含めて遷移を書けば実現できる
- 書くとこうなる (単一ツール実行の場合)
- バックエンドの種類によらない
- 異常系の処理自体は不可避
- こんなの書きたくない!!!!
- バックエンドでよしなにして欲しい
- 例
- 資源確保 <-> 資源破棄 のペア
- 異常終了時も正常終了時も、最終的には破棄されるべき
- 全ての実行パスで破棄コマンド呼ばせるのは人間の仕事ではない
- 生成系の仕事としても退屈 && デバッグしにくくなるのでつらい
- [スコープガード](https://tour.dlang.org/tour/ja/gems/scope-guards)が欲しい
- Loan パターン(プログラミングのデザインパターン)とか Saga パターン (マイクローアーキテクチャのデザインパターン)とかに相当するもの
- 上記は基本的に直列実行処理に関するパターンっぽい
- 状態遷移システム上での「スコープ」をうまいこと定義してやる必要がある
- 実装自体は可能
- が、分散実行前提のシステム上に適当に実装すると絶対にカオス空間が広がる
- カオスにならないような制限をうまく加えたい
- [concurrent revisions](https://tech.preferred.jp/ja/blog/modern-parallel-concurrent-programming/)というワードを手に入れる
- スコープ定義に使えるか?
## 大田
- Sapporo deployment on DDBJ をやりたかった
- まだノードの準備ができていないようであった
- BioSample RDF が近日中にリリースできそう
- SPARQL検索でよしなにサンプル情報を検索できる
- 検索キーワードを入れるとデータをダウンロードしてWFを実行する素敵クライアントに一歩近づいた
- 別案件のコード修正
- 理研の臨床DB案件
- テストを書いてないのでよくない
- コードはきれいに書いていたので修正は余裕だった