---
# System prepended metadata

title: 37th Workflow Meetup (2021-02-01 Mon)

---

# 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)

## 石井

- ２週間ほどジョギングをしているのですが、ひざが痛いです。
- 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本体のオプションは、ハイフンが１つ。ハイフンハイフンとハイフンが２つはユーザのワークフローにわたすオプション
        - [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)
        - ２種類紹介されていて興味深い。
- [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 と \#バイオインフォマティクス 関連が３つも含まれていました🎉 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 &amp; @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` と、実行するシェルに書いてもーそれがきかない。
