就職Hacks (製薬企業のDryポスト)

製薬企業でDryのポストを狙っている学生の方々は、おそらくバイオインフォマティクスやケモインフォマティクスの研究室に在籍しているか、ウェットの研究室の担当でDry解析も掛け持ちしているとかだと思います。なので、NGS解析用の既存のコードをモディファイするなり、研究室でメンテされているコードをちょいちょい書き換えたりして、研究成果を出しているのだと思います。就職活動で製薬企業でDryのポストを得るためには研究成果以外にも解析能力やコーディング能力をアピールできると良いと思いますので、損にはならない(と私が思っている)方法を2つほど紹介したいと思います。

GitHubは使えるようにしておこう

書いてあるとおりそのままです。アカウントがなくて成果物がアップロードされていないとしても、PRやイシューを送ったことがあるかといった経験はあったほうが良いかなと思います。

競技プログラミングにもちょっと手を出しておこう

プログラミングを楽しめるということもDryでやっていく研究者として重要な資質かなと思います。インフォマティクス系のポジションを狙っている場合、もしかしたらアルゴリズムに関して質問されるかもしれません。そういった場合にある程度基本的なアルゴリズムやデザインパターンなどに関する知識があったほうが良いかなと思います。

競技プログラミングは色さえついていれば良いと思います。無色透明よりは断然マシでしょう。あんまり聞かれることはないと思いますが、もし私が面接官をやれと言われたら間違いなくする質問だと思います。TOEICのスコアと同じくらいにわかりやすい参考値だしね。

Pythonによるバイオインフォマティクス 原著第2版

Pythonによるバイオインフォマティクス 原著第2版の翻訳に関わりました。

バイオインフォマティクスの書籍というとだいたい3つに分類されるかと思いますが、本書は3のカテゴリに入るかなと思います。

  1. アルゴリズムに関して記述してある本、情報科学系の人向け
  2. ユーザーとして解析方法を知りたい人向け
  3. インフラ寄りの立ち位置で、生命科学データベースやウェブサーバーなどを扱いたい人向け

本書の初版に寄せての1文を借りると

本書の主目的は生 物学の問題と解かんとするこれら研究者を助け,プログラミングの初歩をてほどきすることにある.

つまり本書の特徴はBioPythonを通してPythonプログラミングの基本を覚えられるような構成になっています。目次を見ればわかりますが、8章までPythonの説明に当てられており、9章でBioPythonのいろいろな機能が紹介されます。二部ではDB操作(RDB, NoSQL)やWebアプリケーションの構築に触れられています。ただし、NGS解析については触れられていない ですし、機械学習(Scikit-learn)についても触れられていないので、そのあたりに興味のある方は他の書籍を選択したほうが良いでしょう(後ろに載せます)

本書の原著第2版はPythonの2/3について記述されていましたが、翻訳をしている間にPython2系が廃止されたという経緯もあって翻訳は完全にPython3での記述に変更しています。そのためにAuthorのSebastian BassiとSlackで何度もやり取りをして修正したり、ライブラリのバージョンアップで動かなくなったコードを直したりと結構手を入れました(かなり頑張ったのでまえがきに記載してます)

なお,今回の作業では,著者であるSebastian Bassiと頻繁にやりとりし,可能な限り正確な訳出を心がけた。現在では古くなっている情報については,該当箇所を書き換える,あるいは訳注として対応し,単なる原著第2版の邦訳以上のものとなっている。

ちなみにウェブアプリケーションフレームワークはBottleを採用しているのだけど、私はFlask派です。

PythonでNGS解析をしたい人は?

Bioinformatics with Python Cookbookを選択すればいいと思います(私は原著を読んだので翻訳はもってないです)。ただしCookbookと書いてあるように、前提としてある程度Pythonプログラミングができることを要求する本となっています。もしこの本のコードがわからんという人にとってはPythonによるバイオインフォマティクス 原著第2版は良い選択肢になるのではないでしょうか?

また本書はファイルフォーマットの説明があっさりだったので、Dr. Bonoの生命科学データ解析のフォーマットの説明の章を重宝しました。参考までに。

ProductName Dr. Bonoの生命科学データ解析
メディカルサイエンスインターナショナル / ¥3,300 (2017-09-29)

もう一点はシングルセル解析についての記述はありません。そのためScanpyなどに関する説明もありませんのでこのあたりを知りたい人はドキュメントを読んだりコードを追いかけたりする必要があるのではないでしょうか?

ユーザーとして解析方法を知りたい人には

このあたりが鉄板で、レビューもたくさんあるので調べてみてください。個人的にはRNA-Seqデータ解析が一番わかりやすかったです。

ProductName 次世代シークエンサーDRY解析教本
学研メディカル秀潤社 / ¥6,160 (2019-12-12)

「Kaggleで勝つデータ分析の技術」を読んだ

データ分割の考え方とか特徴量作りのコツみたいなのが丁寧に書いてあって大変参考になった。

ある程度Pythonで機械学習をやっている人向けの本ですね。

ProductName Kaggleで勝つデータ分析の技術
技術評論社 / ¥3,428 (2019-10-09)

いつもはランダムフォレストでいいやーって感じなんだけど、ハイパーパラメータのチューニングめんどくさいしXGBoostかLightGBMに改宗したほうがよいのだろうか。

Looking Back 2020

去年の振り返りはこちら。今年は色々あった気がする。特に後半は常にいいことと悪いことがセットでやってきて トータルちょっといい みたいな感じがデフォルトになってしまったので、まぁそういうもんかなと思うことにした。

仕事関連

組織とチームが大きく変わった。今まではcomputer chemistryのチームとして合成部門の中で適当に成果を追求していれば良かった、つまり、メディシナルケミストとしてプロジェクトにどう関わっていけばいいかを考えていれば良かったのだけど、上司も変わって、bioinformaticsのチームもマージされて幅広くマネジメントしなければいけなくなり苦労した。特に、Lead FindingとかLead Optimizationだけでなく5RでいうところのRight Target, Right Patientも担当範囲になったのでなかなか大変な一年であった。とはいえ、computer chemistryチームはプロアクティブに動けるメンバーばかりだったので相当助かった。新しく一緒に働くことになったbioinformaticsのチームはモチベーション高いし、薬理学の知識は十分あるので方向だけ揃えればとりあえずうまく成果がでそうなので良かったが、来年はもう少しBioinformaticsのコード書くスキルを上げていってなにか新しいことをやりたい。コンピューターサイエンティストはコードに自分の新しいアイデア込めてなんぼやしね。

それから、夏前にcomputer chemistryのチームに日本語をほとんど話せないインド人の方がジョインした関係でチームの共用語が英語に切り替わった。企業年金とかコンプライアンス教育とか賃金制度とかそういった日本語の文書を英語で説明しないといけなくて、どうすんのこれ?と思ったけど意外と慣れたw。それから彼はアカデミアからの転職なので色々刺激を受けているし彼のpaperworkにかける思いは非常に強くて「やっぱ論文書かないとなー」という気分にさせられる。

ちなみに、英語で表現できなくてもどかしい思いをするのはなぜかと考えた場合に、一番大きいのは使えるverbが少ないなーとかいうことかなと思ったので使えるverbを増やすようにしている。グラマーもっとちゃんと勉強しないとあかんなという気持ちになるのも良かったけどもSとOはなんとなく表現できるしな。以下の本は役に立った。

ProductName 外資系1年目のための英語の教科書
KADOKAWA / ¥2,079 (2020-03-14)

今年は低分子以外のモダリティに関してもSBDDで成果を出したし、X線結晶構造やクライオ電顕によらないSBDDにもチャレンジしたし、来年も引き続きSBDD力を高めていきたい。そしてcomputer chemistryとbioinformaticsのチームにもう少し人を増やしたいと思っている。

仕事以外

前述したようにうちのチームにジョインしたインド人の方が南インドの出身なので、そのあたりの食べ物に関してネホリンハホリンしたため南インド力(食)が向上した。それから色々本場のスパイスミックスを頂いたので新しい料理や調理法などを色々覚えた。コロナが落ち着いたらインドに舌の修行にでかけたいところ。

それから在宅勤務がデフォルトになったおかげで毎日ぬか床をかき混ぜる余裕を持てて、今年はぬか床と年を越せたのは嬉しい。来年はもう少しいい感じに漬けられるように精進したい。

他にはホームメードベーカリーのコネ機能を使えばラーメンの手打ちが簡単にできることに気づいて、パスタマシンを併用してラーメン作りが本格化したことか。加えてリパブリューの店長にラーメン指南を受けているし、静岡のエンジニアはカレーとラーメン作れてなんぼっていう風潮が出来上がっているっぽいのでこちらも精進必須ですな。というより、静岡のエンジニア界隈はいつも仲良くやれていて良いですね、素晴らしい。

悲しみとしてはmacのOSをアップグレードしたらTraktor Kontrol S4が動かんようになってしまったことでmk3買うかどうか本当に悩んでいる。

今年はコードを書く暇が殆どなかったのも振り返ってみると大変残念なことであったので、来年はもう少し書けるように工夫するというか書く。書かないといいアイデアも浮かばないし、ネタとして発表も出来なくて悲しい。

海外に遊びに行けなかったのは辛かった。かろうじてホーチミンに行けてラッキーだったがその後に予定していた台湾、バンコク、モントリオール、スペインは無理であった。

多分来年も似たような感じだろうから、沖縄にいってやちむん爆買したい。

静岡東部ははラブライブサンシャインとKNIMEの聖地

この記事は創薬 (dry) Advent Calendar 2020の24日目の記事です。

ラブライブサンシャインとKNIMEに関してはみなさんご存知だと思うので詳しい説明は省きますが、 もしKNIMEについてよく知らない方はt_kahi’s blogをチェックして、ラブライブサンシャインを知らない人は、今すぐNetflixを購読して呪術廻戦魔女の旅々を見てください。

今回は、KNIMEのワークフローを一元管理して共有するWebアプリケーションを作ったときの経緯を書いておきます。

そもそも、Mishima.syk #14@t_kahiがKNIMEの話をしたときにうちの会社は共有システム作ったよっていう話をしていて、それを聞いた他社の人が「うちの会社にも欲しいわ」って言ったから「じゃぁ、OSSの作るわ」っていう流れで始まった気がします。

そんで、2週間後くらいにSpotfireのユーザー会に参加しなきゃいけなかったんで、行きの新幹線でコード大体書いてたみたい。GiteaのKNIME版を意識してたからknimeaとかいう仮の名前をつけていた気がします。

一応、UGM中につくり終えたみたいですね。

その後UGMは楽しく終わったんだけど、ちょうど超大型台風が接近していて帰りの新幹線が止まっていたので、東京駅のプラットフォームでみんなで二次会してましたw そういえば@iwatobipen先生はいたようないないような、、、記憶があやふやですw

色々と(飲みながら)雑談していたら、KNIMEの話になって@bonohuがKNIMEのアナグラムが金目鯛になることを発見して、その後すぐに@t_kahiがフリーの金目鯛アイコンを探し出してくれて、無事に公開することができたと。 これがKNIMEのシンボルが金目鯛、そして聖地が静岡東部になった瞬間です

というわけで皆さん使ってみてください。コロナが落ち着いたら、みんなで東伊豆に集まって金目鯛をつつきながらKNIMEハンズオンでもしましょう(聖地巡礼)。

最後にいつもキャッキャウフフできるような環境を維持していてくれるMishima.sykに参加してくれているみなさんに感謝です。

ついでにキャッキャウフフしたい人も探していますので是非私まで。

DeepInsightでちょっとよくわからないことのメモ

人工知能でゲノミクスをというプレスリリースでちょっとよくわからないことがあるのでメモ

最後の方の「図1 変数ベクトルxを変換Tで行列に変換する全体像と変換の具体的な手順」のところで1-aの具体的な手順としてtSNE/kPCAが提案されているが、これがよく理解できていない。

例えば化合物ライブラリの例だとそれぞれの化合物は2048次元の特徴ベクトル(フィンガープリント)を持つ。ただし二次元空間にマップされるのはそれぞれの化合物であって特徴(feature)ではない。

1-bで特徴がマップされるためには特徴自体が多次元ベクトルを持つ必要がある。同僚にN回測定のサンプルなんじゃないの?って言われたけど、それだったら平均とって終わりじゃない?ってことになった。

仮にGeneをマップしようとするばあいnサンプルを転置してベクトルにすればいいけどその場合は「訓練」「バリデーション」「テスト」にそれぞれtSNE画像ができてよくわからんことになる。

それから200x200の画像に変換するってあるんだけどデータの遺伝子が60483あるので、ピクセルに一つ一つに対応させても2万遺伝子くらいあふれるよなーと。黒く塗り潰されるか遺伝子の位置が重なって情報欠損すると思うんだけどそのあたりもよくわからん。

実装眺めるしかないなーとCode AvailabilityからURLたどって探したんだけど見つけることができなかった。

追記: コードがダウンロードできました 2019.08.09

http://www.alok-ai-lab.com/materials.php

のDeepInsight Package DeepInsight_Pkg.tar.gzだそうです。

実装はMatlabだったので手元で動かすことはできませんが、コードを読んでみました。

Cart2Pixel.mの3行目

% Q.data should be in no_of_genes x no_of_samples format

で、実際に50行目あたりで

Y=tsne(Q.data,'Algorithm','exact','Distance',Q.Dist);

となっているのでやっぱりtSNEのドットはサンプルか(転置した場合)遺伝子を表現していていて、「訓練」「バリデーション」「テスト」にそれぞれtSNE画像ができるような気がします。

2020.12.19 追記

videoとコードを読んで理解した。

まずfeature vectorを転置すれば確かに良かった。1-bのそれぞれのドットが特徴のデカルト座標を表すことになるということは理解した。ただし、その後のピクセル化はちょっと恣意的に選び過ぎな気がするというか精度がそのプロセスに依存するような気がする。

遺伝子発現の場合、似たような発現プロファイルの遺伝子(特徴)を集めるという教師なし学習を予めおこなっておいて、その結果にCNNをおこなうってことの意味がまだ良くわかっていない。これでいいんだったらNMFで得られたメタ遺伝子を使ったモデル学習でもよろしいような気がするが?

Mishima.syk #16やりました

Mishima.syk #16に参加された皆様お疲れさまでした。オンラインでも楽しくやれるということがわかってよかったです。またDiscordを使った懇親会も入れてみましたが、結局2200くらいまでの5時間近く雑談できていたので次回もこの方式でやろうと思いました。

14ヶ月ぶりの開催と言われて「あれ、そうだっけ?」となりましたが、調べたら正しかったので、コロナの影響が結構大きかったんだなと改めて気付かされましたね。

どの演題も興味深かったのですが、LTは全部面白かったです。音声認識とラベリングの話と社会人博士課程の話は特に良かったです。それから、Mishima.sykに昔から参加している面子にケモインフォの話をさせると、最初から異次元を目指すので、あまり馴染みのない方にもわかるように丁寧に説明する演題があったのもオンラインで幅広く参加できるようになったおかげかなと思いました。今後も期待しています。

今回の工夫

タイムキーピングをきちんとやった

これまでは、ざっくり時間を決めて会議室退出時間にぎりぎりまで喋り倒すという流れだったのをきちんと時間通りに終わるようにしてみたけど、これは良かったです。

Discordを併用した

ZoomのほかにDiscordを併用し、すべての発表者のチャンネルを作って質問などはそこに書き込むようにしたおかげで、情報の整理はスッキリできたように思います。ただ、反動としてTwitterの書き込みが極端に減ったので参加者以外には見えなくなったというのはどうなのかな?と。

投げ銭システム採用

Amazonのギフト券サービスを利用した投げ銭システムを採用してみました。これはうまくワークして、次回以降のZoomの利用料金がカバーできるようになったので、また近いうちにオンライン開催したいなと思っています。投げ銭してくれた皆様ありがとうございました。

ニーズの集約

Discordに「今後ききたい内容」を集めるチャンネルを用意してみたのですが、これはあまりうまくいかなかったです。テーマを決めるのは毎回苦労するので、これに関しては引き続き工夫していきたいところ

Discordのボイスチャンネルを使った懇親会

発表者それぞれにDiscordのボイスチャンネルを用意して好きなように集まって雑談できるようにしましたが、これは割とうまくいきました。ただ、特にチャンネル名に意味はなくて、いくつかチャンネルを用意しておくだけでよかったみたいです。

シングルセル解析

シングルセル解析のウェットの方の原理などが知りたかったので買ってみた。

1部は良かったけど、2部,3部はサーベイな感じが強すぎたのとがんが多かったので読み流してしまった。

免疫の領域でシングルセル解析での例が知りたかったのだけど、、、

やはりこれ以上は論文とかレビュー読めってことですかね。

なんで低分子化合物が核酸よりも選択性が高くなるの?

Synucleozidの論文読んでたら、低分子化合物で核酸に干渉したほうがsiRNAみたいな核酸で干渉するよりもオフターゲット効果が少なくてプロミッシングだって書いてあって、脳内ではてなマークが乱舞した。

In summary, Synucleozid demonstrated proteome-wide selectivity, which indicates targeting the SNCA IRE by small molecules is a promising direction for drug discovery and development since off-target effects have been previously observed in nucleic acid-based knockdown experiments

詳細はこの論文を読めということらしい。

2020.11.08追記

これかな

特定のターゲット遺伝子以外の1個または2~3個の遺伝子に生じる効果で、siRNAまたはd-siRNAプールの導入後に遺伝子機能の抑制がみられます。この効果は、siRNAのセンス鎖によって媒介され、意図しない遺伝子の機能喪失を開始させます。標的とは無関係な遺伝子の発現がノックダウンされるのに十分な相同性がある場合は、オフターゲット効果が特定のsiRNAのアンチセンス鎖の二次的効果として生じることもあります。

実験医学 2020年11月号 Vol.38 No.18 腸内細菌叢生態学

腸は環境としてどのくらい効いてくるんでしょうね?

なんか色々抽象化されすぎているような気もしないでないが。

経口免疫寛容不思議よね、、