# 37th Workflow Meetup (2021-02-01 Mon) ================================ [20210201 · workflow\-meetup\-jp/workflow\-meetup Wiki](https://github.com/workflow-meetup-jp/workflow-meetup/wiki/20210201) 2021-02-01(Mon) 13:00 - 19:00 まで。 完全リモートのため、全世界どこからでも参加可能。 # 事前計画 ## 全体 ## 石井 - 次回日程を決める - 3/1月曜日が候補 ## 西田 - https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/notebooks を試す - https://workflow-meetup-jp.github.io/ を更新する ## 丹生 - [phobos#7766](https://github.com/dlang/phobos/pull/7766)をマージして欲しい # こうなりました ## 全体 - Pragli で GIPHY がつかえることがわかったので、時間の使い方に気をつけよう。 - 次回2021-03-01(Mon) 13:00-19:00 - CWL miniconf - 来週2/8 - 2/10 - Pitagora Meetup - [Pitagora Meetup 2021\-02 \| events](https://pitagora-network.org/events/meetup/2021/meetup-202102) - Sparqlthon101 - [2/18-19](http://wiki.lifesciencedb.jp/mw/SPARQLthon101) ## 石井 - 2週間ほどジョギングをしているのですが、ひざが痛いです。 - docker イメージの挙動について - debian/testingで、コンテナ内のユーザがrootなのに、ファイルの所有者や、パーミッションがみえないという現象があった - privileged モードでなら所有者とかパーミション解決できた - 本来の動作もこれが意図通りなのかは不明だが、もしかするとセキュアにふっているのかなぁというきもした。 - debian/stableでは期待通りの動作で、ファイルの所有者もパーミッションもみえた - 今後詳しく調査したい。 - CWLをクラスタに投げたいk時、python3系でインストール、toil4.2.0とcwltoolの組み合わせ。 - `pip install toil==4.2.0 cwltool==3.0.20200709181526` - cwltoolがpython2系のサポートがおわったのと、動かしたいワークフローのうち、toil5系で動かなくて、toil4でうごくものの組み合わせを探したらこうなりました。 - MLFlowを使うと、バグの再現状況を共有できるか? - ワークフローがオープンソースで、テストデータがオープンデータでくばられていると、テストがしやすい - おおたさんのドキュメント - 西田さんと丹生さんと、VSCode で Jupyter Notebookの Live Shareをしようとした - もうちょいって感じでしたが、うまく動かなかった - 試した組み合わせ - 敬称略 | 西田(ホスト) | 丹生 | 石井 | 結果 | | -------- | -------- | -------- | ---- | | VSCode release版(Windows)、Live Share Insider | VSCode release版(Mac Big Sur) | VSCode release版(Mac Big Sur) | 丹生、石井Notebookは見えるが、エディットできない | | VSCode Insider版(Windows)、Live Share Insider | VSCode release版(Mac Big Sur) | VSCode release版(Mac Big Sur) | 丹生、石井Notebookは見えずが、Markdeownは見えてエディットできた | | VSCode Insider版(Windows)、Live Share Insider | VSCode Insider版(Windows)、Live Share Insider | VSCode release版(Mac Big Sur) | 丹生、石井Notebookは見えずが、Markdeownは見えてエディットできた | ## 西田 - notebook の live share はまだ使えなかった - https://twitter.com/kozo2/status/1356128926343462915 で feedbackした - 1ページに情報がごちゃまぜになっていた https://workflow-meetup-jp.github.io/ を各ツール(等)毎のページに分けた - ただまだ全然情報がきれいにまとまってない - ボランティア募集 ## 丹生 - Jupyter notebook via Live share - うまくいかなかった - Live Share 自体は良くなっていた - VSCode から直接 invite/accept などができるようになっていた - [Phobos#7766](https://github.com/dlang/phobos/pull/7766) 周り - 石井追記:丹生さん曰く [Phobos](https://dlang.org/phobos/) は、[D言語](https://dlang.org/)の標準ライブラリとのこと。 - これなに? - D言語の `spawnProcess` (子プロセス起動関数)で、子プロセスが親プロセスのシグナルマスクを継承してしまうため、親で `SIGINT` を捕捉して、子プロセスを操作するようなアプリケーションがそのままでは書けないのでその修正 - クリーンアップ処理など(失敗時にも実行してほしい)を medal 上で実現するのに必須 - シグナルマスク関係は POSIX 限定なので、マージを渋られている - ~~反論を書いたが、これで納得してもらえない場合はどうしようもない~~ - [いい感じの返事](https://github.com/dlang/phobos/pull/7766#issuecomment-770641046)は返ってきたが、変更箇所が壮大になりつつある… - phobos#7766 込みの状態だと、medal がシグナルハンドリングを意図通りにしてくれることを確認 - 当面は悪しきコピペプログラミングでなんとかする予定 ## 大田 - CWL miniconference の発表動画の締め切りが大幅に過ぎている - 誰が来るんや…15分もある…どんな内容を話せばいいんや…スライド新しく作るの大変や… - Sapporo のいいところ何?→動くところでしょ→ドッグフーディングのログがあるからいいよね - Sapporo ドッグフーディングシリーズ - https://scrapbox.io/bcdeeiloprru/Sapporo-server_dogfooding_pt.1 - https://scrapbox.io/bcdeeiloprru/Sapporo-server_dogfooding_pt.2 - https://scrapbox.io/bcdeeiloprru/Sapporo-server_dogfooding_pt.3 - ライブコーディングすればいいのでは???? - プロット - GitHub repo (https://github.com/ddbj/SAPPORO-service) にアクセスする - Sapporo は GA4GH WES implementation, CWL as a Service みたいなものだよ - Sapporo は Service, Web の2つのコンポーネントに分かれているよ - Sapporo service を建ててみよう - git clone する - Service には2つのモードがあるよ - standard WES モードと registered only モードだよ - composeファイルの環境変数で on/off するよ - compose file を edit する - docker-compose up する - curl service-info する - Sapporo の入出力は object storage を使うよ - ファイルシステムから分離されているので Docker さえあればどんな環境でも動くよ - minio をローカルに建てるよ - Sapporo-fileserverというのを用意しているからこれを使うよ - docker-compose up する - 鍵をコピーしておくよ - 適当な fastq をアップロードしてURLをコピーしておくよ - Service に登録されているWFを実行するよ - curl -X POST ... - status を見に行く - 出力を見に行く - 正体は run.sh です - runner も基本的にdocker siblings で動かしている - toilも動くよ - slurm なんかに連携させるときは run.sh を編集すればできるよ - ジョブスケジューラに連携させるときはネイティブにインストールした runner を実行するように run.sh を変えたほうがいいかもね - registered-only: false にするとなんでも投げられるようになるよ - 投げてみよう: meta16S-demo - inputs default が Zenodo にあるファイルが指定してあるので何もなくても動く - サーバへのアクセス権限には気をつけよう - Sapporo-Web を使ってみよう - GA4GH WES にアクセスするための ブラウザベース GUI だよ - under development だよ - 既に動いている WES エンドポイントを指定してワークフローを実行するよ - ためしてみてね && PR 待ってるぜ! - ToDo - "Sapporo: Getting Started" というタイトルで上の内容を github に書く - それを見ながらライブコーディングをする様子をZoomで録画する - とりあえず字幕なし版をカンファレンス動画フォルダにアップロードする - 字幕をつけるためにyoutubeにアップして待つ - 丹生追記: 半日くらいかかるかもしれない - 字幕をつけてまた上げ直す ## 池田 - CWLの実行系についてアドバイスをもらう - Toilが良い(一部のCWLのワークフローが動作しないから、V4.2.0を利用すると良いかもと石井さんから) - `pip install toil==4.2.0 cwltool==3.0.20200709181526` - slurmで投げる例 ``` toil-cwl-runner \ --jobStore ./download-sra \ --batchSystem Slurm \ --retryCount 2 \ --maxLogFileSize 20000000000 \ --stats \ https://raw.githubusercontent.com/pitagora-galaxy/cwl/master/tools/download-sra/download-sra.cwl \ download-sra.yaml ``` - Toilから投げられたジョブが動作するためには - 各ノードに次の実行系が必要(?) - Toil - Node.js - CWLtools - 全部コンテナの中だけでできるかもしれないけど... ## 尾崎 - nextflowで作ったパイプライン ramdaq のリソースの調整作業を行なっていた - nextflow でこういうエラーが出ることがあった ``` Command exit status: 125 Command output: (empty) Command error: nsenter: failed to unshare namespaces: Cannot allocate memory container_linux.go:265: starting container process caused "process_linux.go:270: running exec setns process for init caused \"exit status 34\"" /usr/bin/docker: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:270: running exec setns process for init caused \"exit status 34\"". time="2021-01-27T11:11:44+09:00" level=error msg="error waiting for container: context canceled" ``` https://serverfault.com/questions/894070/docker-issue-exit-status-34 - 石井追記 - `-report` のオプションをつけるといろいろでてくる - Nextflow本体のオプションは、ハイフンが1つ。ハイフンハイフンとハイフンが2つはユーザのワークフローにわたすオプション - [inutano/cwl\-metrics: Accumulating container resource usage with workflow metadata](https://github.com/inutano/cwl-metrics) っぽい。おおたさん - Nextflowの割当を見直してより最適な配置を検討中とのこと - 確保しすぎると余剰が発生して、本来ながれてよいはずのジョブが待ち状態になる。 - CWLのCommandLineToolがNextflowだとProcess - dockerのエラーメッセージからの感(丹生さん) - unshareはcgroup関連では? - [第34回 Linuxカーネルに実装されたcgroup名前空間 ─ コンテナ内のcgroup管理[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo\.jp … 技術評論社](https://gihyo.jp/admin/serial/01/linux_containers/0034?page=2) - `unshare` は cgroup 関連のコマンド: https://linuxjm.osdn.jp/html/LDP_man-pages/man7/user_namespaces.7.html - [Nextflow Tower](https://tower.nf/) - Paoloさんイチオシ - Nextflowの実行をできる状況に、ジョブを投げたり、スタッツを回収したり。 - ローカルでもつかうなどは、[seqeralabs/nf\-tower: Nextflow Tower system](https://github.com/seqeralabs/nf-tower) github参照 # 前回のミートアップから今回のミートアップまでにSlackなどにあったリンクメモ - "ghcrを使え packages は使うな" - > github container registry (ghcr) は owner (人) に紐付いていて、pkg.github.com はレポジトリに紐付いてる - Docker Hubはダメなのですか? - このあたりが気になる - [Resource Consumption Updates FAQ \| Docker](https://www.docker.com/pricing/resource-consumption-updates) - [The Role of Containers in Reproducibility](https://conferences.computer.org/scwpub/pdfs/CANOPIE-HPC2020-6GN8joymhwMWpK4pB3hqMl/306200a019/306200a019.pdf) - 再現性の話、コンテナ - [harvardinformatics/bioinformatics\-coffee\-hour: Short lessons from FAS Informatics coffee hour](https://github.com/harvardinformatics/bioinformatics-coffee-hour) - バイオインフォマティクスチュートリアル - Docker in Docker の話 - 現代の Docker in Docker 、Docker 横 Docker(Docker sibling Docker ?)などから定義が昔とかわってきているかもしれない - [Docker in Docker のベタープラクティス \- Qiita](https://qiita.com/sugiyasu-qr/items/85a1bedb6458d4573407) - 2種類紹介されていて興味深い。 - [Tool Registry Service API: Enabling an Interoperable Library of Genomics Analysis Tools](https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/) - ワークフローやツールが公開されているサービス? - リストアップしてほしい既存公開済みワークフロー - Snakemake - snakemake catalogue: https://snakemake.github.io/snakemake-workflow-catalog/ - CWL - bio common workflow library: https://github.com/common-workflow-library/bio-cwl-tools - Nextflow - nf.core: https://nf-co.re/pipelines - システムはとわないもの - workflowhub.eu: https://workflowhub.eu/workflows - 左側にいろいろなシステムの名前が - ![](https://i.imgur.com/R3xdSvb.png) - M1 Mac で bioconda しようとして見事失敗した話です - https://scrapbox.io/bcdeeiloprru/Bioinformatics_with_Apple_M1_Chip その後成功した模様 - conda-forgeのパッケージがビルドされてる様子を見たい方は https://github.com/conda-forge の各feedstockの Current build status の下のリンクふむと見れます - [Haruka Ozaki \(尾崎遼\)さんはTwitterを使っています 「Ten computer codes that transformed science の中に ・biological databases ・NIH Image ・BLAST と \#バイオインフォマティクス 関連が3つも含まれていました🎉 https://t\.co/ZGIpQS6SEC」 / Twitter](https://twitter.com/yuifu/status/1352425215771332609) - [Ten computer codes that transformed science](https://www.nature.com/articles/d41586-021-00075-2) - bioconda ビルドシステム - [Build system — Bioconda documentation](https://bioconda.github.io/contributor/build-system.html#) - CircleCIで行われているということを教わる - [パブリック リポジトリの例 \- CircleCI](https://circleci.com/docs/ja/2.0/example-configs/) - [Build system — Bioconda documentation](https://bioconda.github.io/contributor/build-system.html#stages-of-a-bioconda-build) - Stages of a bioconda build - PM4GNS、CWLのベストプラクティスになりうる? - [PM4NGS, a project management framework for next\-generation sequencing data analysis \| GigaScience \| Oxford Academic](https://academic.oup.com/gigascience/article/10/1/giaa141/6067195) - Ubuntuでのインストール - [2\. PM4NGS on Ubuntu — pm4ngs 0\.0\.6\.dev2\+ga9fc2c5 documentation](https://pm4ngs.readthedocs.io/en/latest/pipelines/ubuntu.html) - Windowsでのインストール - [3\. PM4NGS on Windows Subsystem for Linux — pm4ngs 0\.0\.6\.dev2\+ga9fc2c5 documentation](https://pm4ngs.readthedocs.io/en/latest/pipelines/windowssl.html) - Windows の Ubnutu on WSL 環境の場合のインストール方法も画面付きでている - [GigaScienceさんはTwitterを使っています 「PM4NGS, a new project management framework for next\-generation sequencing data analysis from @NCBI leveraging @ProjectJupyter & @commonwl workflows and outputs https://t\.co/jbZS7wddtL https://t\.co/91DQCOSo6k」 / Twitter](https://twitter.com/GigaScience/status/1352631956962308097) - Snakemake Live Streaming - [Titus BrownさんはTwitterを使っています 「Yesterday, I did a two hour live stream on twitch of creating a \#snakemake workflow for variant calling\. Notes and video recording are available here \- https://t\.co/euWZuyBlur」 / Twitter](https://twitter.com/ctitusbrown/status/1352249660665077762?s=09) - [notes from snakemake live stream \- HackMD](https://hackmd.io/SU2NB89JRu6fRPtSFizEEA?view) - [Performance Analysis for Arm vs x86 CPUs in the Cloud](https://www.infoq.com/articles/arm-vs-x86-cloud-performance/) - クラウド上のでのARMとx86のパフォーマンス - [レッドハット、開発/小規模本番ワークロード向けにノーコスト版RHELを導入へ\-\-Red Hat Developerプログラム \- ZDNet Japan](https://japan.zdnet.com/article/35165365/) - > Red Hatは今回の発表の冒頭で、同社がかなり以前から開発者向けの「Red Hat Developer」プログラムを通じて、CentOS Linuxの代替となるノーコスト版のRHELを提供してきたと記している。ただ、その利用条件はこれまで、1台のマシンを用いる開発者に限られていた。しかし今回、同プログラムが拡大され、RHELの「Individual Developer」サブスクリプションは、最大16の本番環境システムで利用可能になる - [common\-workflow\-library/rnaseq\-cwl\-training](https://github.com/common-workflow-library/rnaseq-cwl-training) - CWLによるRNA-seqのトレーニング - [「“RAID全滅”があり得るように、“クラウドなら絶対安全”もない」、クラウド時代の「データ置き場の考え方」とは? \- INTERNET Watch](https://internet.watch.impress.co.jp/docs/interview/1300711.html) - クラウドといえでも、、、 - 最後のキーポイントによいことがかいてある。 - Docker for Mac は QEMU によって Intel Mac 上で arm64 イメージを実行できる。 - M1 Mac 上で同様に x86 イメージを実行できる ``` ~$ uname -m x86_64 ~$ docker run --rm -it --platform linux/arm64 alpine uname -m aarch64 ~$ docker inspect alpine|grep Architecture "Architecture": "arm64", ``` - nextflowのwebinar - https://twitter.com/H3ABioNet/status/1354420905817079810 >H3ABioNetH3ABioNet @H3ABioNet >Webinar with @EvanFloden on @nextflowio live NOW: >https://www.facebook.com/H3ABioNet/videos/410374310233580/ - [workflowr\.io \| workflowr\.io](https://workflowr.io/) - ワークフロー集めたサイト - [WorkflowHub](https://workflowhub.org/) - ワークフロー集めたサイト。こちらは前からあった。 - [CWL の requirements 一巡り: LoadListingRequirement](https://zenn.dev/tom_tan/articles/fc233a322a44d4) - `shellQuote: False` についても記述あり - Snakemakeでシェルを指定するオプションが聞かない件 - [Job scheduler's options specified in shell script are ignored by snakemake command · Issue \#526 · snakemake/snakemake](https://github.com/snakemake/snakemake/issues/526) - Issueあがっている - WORKAROUNDは、`--cluster "qsub -S /bin/bash"` みたいにして、他に必要なオプションなどをつける - `#$ -S /bin/bash` と、実行するシェルに書いてもーそれがきかない。