# 42th Workflow Meetup (2021-07-07 Wed) ================================ [20210707 · workflow\-meetup\-jp/workflow\-meetup Wiki](https://github.com/workflow-meetup-jp/workflow-meetup/wiki/20210707) 2021-07-07(Wed) 13:00 - 19:00 まで。 完全リモートのため、全世界どこからでも参加可能。 # 事前計画 ## 全体 - [Jupyterlabのコラボのハンズオン](https://github.com/workflow-meetup-jp/handson/tree/main/20210602) - CWL User Guideを動かす - スクラッチからどれくらいで準備ができるか - dockerはつかえなさそうだがどうなんだろう。 - udockerをいれればよいではないか? - binderは、OSはUbuntuの18.04です - binderとngrokがあれば、Galaxyをたてられるんではないか? - グラフの書き換えがみんなにわかるとよいだろう - y=2xのグラフをy=3xにしたら、全員の画面がかわればそれはそれで便利そう。 - ## 石井 - 次回日程を決める - 8月4日水曜日を希望したいです。 - 2021年度は、月の第一週の水曜日13時スタートの方向。ただし、月曜日など他の日になるかもしれないです。 - ## 西田 - jupyterlabのコラボ機能を紹介する workflow-meetup-jp の jekyll entry を書く ## 丹生 ## 末竹 # こうなりました ## 全体 - 次回8月18日水曜日 - 当初の希望とかわってしまいすみません。 - 次次回9月1日水曜日 - 2021年度は、月の第一週の水曜日13時スタートの方向。ただし、月曜日など他の日になるかもしれないです。 ### JupyterLabのgithubサイトを作る - https://github.com/workflow-meetup-jp/snakemake-jupyter-rtc - 今日の最初のマイルストーン - jupyterlab-rtcのgithubプロジェクトの作り方を調べて書く。最低2ファイル - jupyter_notebook_config.py - environment.yml - 丹生さんに、github.comのテンプレートプロジェクトの作り方をきく - レポジトリの設定時に変更をする - レポジトリ作成時ではなさそう。 - 設定のOptionsのかなり上の方に `Template Repository` というチェックボックスあり - ![](https://i.imgur.com/tDmNJo0.png) - 書いた文書、途中で共有が切れてしまった可能性があり、全部ではないが石井の手元にとっておいたバックアップ。必要なければ消す ``` # このファイルの立ち位置 - 紹介記事、と、設定方法、の2つの記事に必要なものを書いて、最終的に2つに分ける。 # JupyterLabを使ってGoogle Docsのようにワークフローを協同で記述する ## 話の流れ - jupyterlabでGoogle Docsのようにjupyterを使えるようになった。 - それは --collaborative オプションと言われる - このエントリでは下記を紹介する 1. jupyterlabを--collaborativeでフリーの環境で使う方法 2. 1.の環境にbiocondaのパッケージを追加してみなさんに使っていただく方法 - もしよかったらworkflow-meetupでいっしょにワークフロー書きましょう - おわり ## メモ - https://github.com/workflow-meetup-jp/snakemake-jupyter-rtc ## 聞きたいこと 1. binderとの連携のしかた ## 書いたほうがよさそうなこと - 使っているテクノロジーの説明、または、本家へのリンク - JupyterLab - 公式ドキュメント[JupyterLab Documentation — JupyterLab 3\.0\.16 documentation](https://jupyterlab.readthedocs.io/en/stable/) - どんなものか1行で書く。 - 石井案、公式ドキュメントのトップにのっていた文言 - > JupyterLab is the next-generation web-based user interface for Project Jupyter. - Jupyterの次世代インターフェース - JupyterLab RTC - 公式ドキュメント[JupyterLab RTC Documentation](https://jupyterlab-rtc.readthedocs.io/en/latest/) - どんなものか1行で書く。 - 石井案、公式ドキュメントのトップにのっていた文言 - > Think to a Google Docs or HackMD for Jupyter. - Jupyter版Google DocsやHackMD - あとは公式ドキュメント参照してほしい - binder - [Binder](https://mybinder.org/) - 公式ドキュメント [Binder Documentation — Binder 0\.1b documentation](https://mybinder.readthedocs.io/en/latest/) - 公式チュートリアル [Tutorials — Binder 0\.1b documentation](https://mybinder.readthedocs.io/en/latest/tutorials/index.html) - binderにおけるgithub 非公開(private)レポジトリの扱い - BinderHubの機能としては、privateレポジトリは扱える - mybinder.orgでは、サポートされていない。 - [jupyter notebook \- How can one use Binder \(mybinder\.org\) with private Github repositories? \- Stack Overflow](https://stackoverflow.com/questions/54648514/how-can-one-use-binder-mybinder-org-with-private-github-repositories) - - Conda - [Conda — Conda documentation](https://docs.conda.io/en/latest/) - anacondaの件について、どうするか?長くなりそうなので、テンプレートにのせてないということと、リンクをはっておけばよいのではないか? - 書かなくても良いかも知れない - 大規模な利用に関してのanacondaのFAQ - [Anaconda \| Anaconda Commercial Edition FAQ](https://www.anaconda.com/blog/anaconda-commercial-edition-faq) ## 実際に起動するまでの方法 1. binderを起動するリンクを生成する必要があるきがする。 ## テンプレートとしての使い方(テンプレートプロジェクトのREADMEに書く) 1. この右上の方にある `Use this template` をクリックする。 1. 自分で作りたいレポジトリの名前をいれる。 1. 公開(Public)/非公開(Private)を選ぶ。mybinder.orgを使うなら公開(Public)を選ぶ ## 参考情報 これ以下のところは、この文書に必要かはわからないが、有益な気がするので、 参考情報として、書いておいても良いかも知れない。 1. Template Repositoryプロジェクト作る方法 - 本家へのリンク - [テンプレートリポジトリを作成する \- GitHub Docs](https://docs.github.com/ja/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-a-template-repository) 1. ``` - 目標的なマイルストーン - jupyterlab-trcでjupyterlab-rtcの立て方を書く。 ## 石井 - Slackのmeetup channel - TypeScript についての深い造詣を、末竹さんより、教えていただく - 基本VSCodeのエラーがなくなるまでがんばるのがよい - ts.config,package.json - type rootsとtypesを使わない世界が実現可能 - [TypeScript の型定義ファイルの探索アルゴリズム \- 30歳からのプログラミング](https://numb86-tech.hatenablog.com/entry/2020/07/15/153431) - [TypeScriptのライブラリの型定義を拡張する方法\(with Discord\.js\) // パケット畑でつかまえて](https://omochizo.netlify.app/posts/2020/08/typeextend/) - d.tsで、importを使うと、アンビエント宣言が、、、みたいな深い世界があるようだ。 - Nginx config generator - [NGINXConfig \| DigitalOcean](https://www.digitalocean.com/community/tools/nginx) - nginxとsinatraの連携 - proxy_buffering off;が重要そうだった気もする。 - Accept-Encodingだったかもしれない。 ``` # To disable buffering proxy_buffering off; location / { proxy_set_header Accept-Encoding ""; proxy_pass http://sinatra:8080/; proxy_redirect / http://gaibu.saito.bio/; } gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml; ``` ## 西田 - いしいさんに丸投げしたのみ。おって jekyll entry 書きます... ## 丹生 - [Corne Cherry](https://shop.yushakobo.jp/products/corne-cherry-v3) (使っているのは v2) の [Bluetooth](https://booth.pm/ja/items/1177319) 化に成功して快適な生活を送っている - もともと Bluetooth 前提のキーボードではないため、[電池基盤](https://nogikes.booth.pm/items/2710739)が固定されていないが許容範囲内 - ネット上では接続周りのパラメータに調整が必要との情報があったが、何もしなくても問題なし - ただし現状 USB キーボードも PC 本体に挿している - 挿さないとスリープから復帰時にブラックアウトする (PC 側の問題) - なんとかしたい - Hail + Spark + Hadoop on Lustre がちゃんと動かない問題の調査 - 経緯 - Spark + Hadoop on Lustre は `spark-shell` を使って Lustre 経由でファイルアクセスできるのを確認していた - Hail 上で動かすとファイルがないと言われる - あれ、と思って念の為 `spark-shell` で再確認するとアクセスできない - なんでや!さっきまで動いてたやろ!!! - 原因 - Hadoop の設定ファイルの `$HADOOP_HOME/etc/hadoop/core-site.xml` 中の `fs.root.dir` で指定したディレクトリが狭すぎるのが原因 - `fs.root.dir` には以下の効果がある - 指定したディレクトリを `/` としても参照できるようになる - 例えば、`fs.root.dir` に `/lustre8/home/tanjo-pg/lustre-dir` を設定した場合、`/lustre8/home/tanjo-pg/lustre-dir/example.txt` に以下の名前でアクセスできる (どちらも先頭の `lustre://`` は省略可) - `lustre:///lustre8/home/tanjo-pg/lustre-dir/example.txt` - `lustre:///example.txt` - **指定したディレクトリ以下以外を Hadoop からは不可視にする** - 例えば、`fs.root.dir` に `/lustre8/home/tanjo-pg/lustre-dir` を設定した場合、`/lustre8/home/tanjo-pg/lustre-dir` 以下のディレクトリ以外にはアクセスできなくなり、それ以外の場所にアクセスすると、パスが見つからない旨のエラーが出るようになる - 最初の動作確認時と再確認時で、読み込もうとしたファイルが異なっていたため、確認結果も変わってしまっていた - オプション名がひどい。とてもひどい。 - schema-salad が生成したパーサーの調査 - 仕様(というか CWL 文法定義のスキーマ)で定義されていないフィールドをどう扱っているのか調べていた - `ext:field` 形式(`ext:` は URI に展開される)であれば `extension_fields` にまとめて突っ込んでいた - それ以外は基本的にエラー扱い > During preprocessing traversal, field name in the document which are not part of the schema vocabulary must be resolved to absolute URIs. - ~~エラーになるような例を仕様中に使わないでほしい~~ - 先月振られた不穏な匂いがする案件について - こんぼうを用意して週末頃から殴りかかろうとしていたら、こんぼうの存在を知られて一部は解決されそう - そんなに早くなんとかできるならもっと早く動いて欲しかった…まぁ改善され始めたのでヨシ! - 解決してない点については容赦なく殴りかかる予定 ## 末竹 - sapporo の論文についての meeting with ohta-san, fukusato-sensei - typescript の型定義ファイル周りを理解した ## 大田 - 5G開通工事の影響で腕が痛い - 末竹さんと論文の相談 - Pitagora の日程調整 - sinatra/nginx app のトラブルシュート - rack が動的に生成する `/list.json` に view からリンクで飛ぶと forbidden と出る、がアドレス直打ちするとjsonがちゃんと返ってくる、しかも production 環境でだけ (localではうまく動いている) - docker-compose -> nginx -> sinatra app ``` 172.18.8.89 - - [07/Jul/2021:08:39:46 +0000] "GET /list.json HTTP/1.0" 403 9 "http://preview.biohackrxiv.org/list" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" 172.18.8.89 - - [07/Jul/2021:08:39:55 +0000] "GET /list.json HTTP/1.0" 200 5303 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" ``` ## 池田 - slack参加 - cwltool --parallel の挙動を確認 cwltool version 3.0.20210124104916を利用 cwltoolの`--parallel`オプション指定でscatterを用いたワークフローを実行時、`ResourceRequirement`で一つのjob辺りに必要なコアの値を定義 ```yaml hints: ResourceRequirement: coresMin: 2 ``` 上記の場合、確かに必要なコア数に応じて同時に実行されるワークフローが制御されている。指定が無い場合には`coresMin: 1`と同じ動作 (4 thread 同時実行可能なら4つのフローが同時に実行される。) - (石井コメント) - 使ってみたい。(😁池田) ## 新海 - 参加 - というかslackすらつながりにくくていろいろとトラブルだった今日 - 自分の仕事とか研究とかやってます - 公共データを活用しての解析 ## 後藤 - 4時くらいから参加 - Kubernetesの勉強を始めた # 前回のミートアップから今回のミートアップまでにSlackなどにあったリンクメモ - ここから書く - どこかでエラーになるコマンドのシステムコールを調べる - `strace rm -rf XXX` - [danielecook/Awesome\-Bioinformatics: A curated list of awesome Bioinformatics libraries and software\.](https://github.com/danielecook/Awesome-Bioinformatics) - Awesome Bioinformatics - [Kaitai Struct: declarative binary format parsing language](https://kaitai.io/) - [Bluetooth接続不具合の対処方法はありますか? \| Happy Hacking Keyboard よくあるご質問](https://faq.pfu.jp/faq/show/3528?category_id=181&site_domain=hhkb) - > MacBoookk Pro に、HHKBんの > Type-Sをつないでいるのですううが、チャタリングがなかなかひどいでっっっす。。。 > いったん、ペアリング解除して、再度ペアリングをしてみたのですが、おおきくかwwっわりいいません。 > なにか、よい方法を > ご存知のかたいらっしゃいましたら、教えていただけると大変助かります。 > ちなみに、 > 他に接続しているものは、マウスです。 >マウスをきっても症状はかわらないです。。。 - うったまま送信したら、困っていることがすごくつたわることがわかりました。 - 研究者募集関連 - [研究者募集サイトのtayo、Beyond Next Venturesと資本業務提携:日経バイオテクONLINE](https://bio.nikkeibp.co.jp/atcl/news/p1/21/06/08/08256/?n_cid=nbpbto_twbn) - コンテナ関連 - [Singularity 勉強会 \| Facebook](https://www.facebook.com/groups/186444928609562) - Singularityがコミュニティとプロと分かれるとのこと - コミュニティ版開発元とおもわるところ - [hpcng/singularity: Singularity: Application containers for Linux](https://github.com/hpcng/singularity) - [DockerとPodmanの比較 \[Container Runtime Meetup \#3\] \| by Akihiro Suda \| nttlabs \| Medium](https://medium.com/nttlabs/docker-podman-28ced4f7cb90) - [ルートレスのPodmanはどのように動作しますか? \- 赤帽エンジニアブログ](https://rheb.hatenablog.com/entry/how-does-rootless-podman-work) - Singularity - [OCI Runtime Support — SingularityCE User Guide 3\.8 documentation](https://sylabs.io/guides/3.8/user-guide/oci_runtime.html) - Podman in Docker - [Podman in Docker を試してみた](https://zenn.dev/tom_tan/articles/d06f2faf6629d1) - 科学関連 - [Classes — Genspace](https://www.genspace.org/classes/) - AIとペアプロ - [GitHub Copilot · Your AI pair programmer](https://copilot.github.com/) - [GitHubさんはTwitterを使っています 「Meet GitHub Copilot \- your AI pair programmer\. https://t\.co/eWPueAXTFt https://t\.co/NPua5K2vFS」 / Twitter](https://twitter.com/github/status/1409883156333879300) - DrawIOも、リアルタイムコラボできるようになる - [Carlos HerreroさんはTwitterを使っています 「@drawio We will have real\-time collaboration on JupyterLab\-DrawIO soon\! Powered by \#Yjs, a high\-performance CRDT for building collaborative applications\. \#jupyterlab \#drawio https://t\.co/VPrtnc24Vo」 / Twitter](https://twitter.com/CarlosHerreroB/status/1409616391527931906) - バイオインフォマティクス - [ハリーくん@バイオインフォマティクスでGWASさんはTwitterを使っています 「plinkを使ったPCA解析の演習ーパート1をはてなブログに投稿しました \#はてなブログ \#バイオインフォマティクス \#独学 \#ゲノム \#データサイエンス plinkを使ってゲノムの集団構造を体験する\-パート1 \- バイオインフォマティクスでゲノムワイド関連解析(GWAS\) https://t\.co/67fwy54lNY」 / Twitter](https://twitter.com/harrykun_blog/status/1408616533731905536)