見出し画像

バイオインフォマティクスの肌感覚

 元々、学生の頃から企業研究者の途中まで純粋なウェット研究者としてキャリアを歩み始めていたが、少し前くらいからドライにも興味を持ち始め、様々な幸運も手伝って、今はドライを中心に研究している。いわゆるバイオインフォマティクスの世界へと徐々に歩み始めたのだ。

 まだまだ駆け出しではあるし、「ウェット研究者がドライに転向する」という内容自体も今ではありふれたものにはなってしまったが、ドライに挑む上での肌感覚的なところをこの場で伝えられたらいいなと思う。ドライの研究にどっぷり浸かる前に書いておくことで、「ウェットからドライに移行する時、こういうところが難しかったんだよなあ」という感覚を残しておきたい。それが将来的に教育的な示唆にもなり得ると信じて。


1.とっつきやすい題材でプログラムに対する恐怖心を減らしておく。
 大学院生の頃、実験が少なくなり、論文執筆に重きをおいていた時期に、息抜きがてらプログラミングをやってみようと思い立ち、Progate というサービスを利用して、様々なプログラミング言語の文法を学んだ。今ではその文法の殆どをすっかり忘れてしまったけれど、プログラミングの基本(同じ操作を繰り返す時の for 文や、条件分岐する時の if 文ではインデントを下げる、など…)は、どの言語でも大きくは変わらず、その感覚を身につけるだけでも、ハードルは大きく下がる。


2.プログラムは眺めるだけでなく、まず手を動かす。
 インターネット上に様々なプログラム例が記載されているので、それをそのまま転用すれば、やりたいことができてしまうということもある。ただ、状況が変わった時にその方法では限界が来る。実際、引数などを少し変えるだけで挙動が大きく変わったりするので、関数や用語は面倒臭がらずに逐一調べてみると良い気がする。だから、1つのプログラムを理解するのに数時間かかることもあり得ることを想定しておいたほうが良い。特にファイルの読み込み・書き出しは、自分で試して実際に挙動を確認することで、理解が進んだと個人的には感じる。


3.小回りの効くことは Excel や Power BI で対応する。
 表形式として構造化されたデータを扱うことが多々ある。不要な行をピンポイントで除去したかったり、重複したレコードを削除したかったり、ちょっとした操作を多用することもあると思う。そんなときは Excel や Power BI が使いやすい。ビジュアルでわかりやすく表を扱えるので、やはりイメージがしやすいのだ。「餅は餅屋」だ。すべてをコマンドで最初から対応する必要はない。


4.ライブラリやパッケージの説明書をしっかり読む。
 バイオインフォマティクスでは、Python や R のパッケージを用いてデータを解析・計算することが多いが、とりあえず使ってみただけでは、その解析が本当に正当なのかを判断することはできない。その解析処理は統計学の理論に基づいて正しく行われているのか? 初期条件の依存性は無いか? 説明書の多くは英語で書かれており、分量も相当なものになるのだが、腰を据えて熟読すべきであると思う。その過程で「プログラムは眺めるだけでなく、まず手を動かす」ことで、具体的なイメージがよりつかみやすくなるはずである。


5.for 文やデータ型の使いこなしが特に重要。
 いわゆるシステム開発の現場などでは、計算量を抑えるために高度なアルゴリズムを使いこなすことが求められることもあるだろうが、ことバイオインフォマティクスにおいて、最初の段階はそこまで重要ではなかったりする。もちろん、ビッグデータを扱う時には計算量の観点は無視できないのだが、むしろ計算を繰り返す for 文や、表をリストや行列に変換して演算処理を施していくことの方が大事になる。出力される形式がリストなのかベクトルなのか? for 文の入れ子構造は正しく組み上がっているのか? 愚直だがそういうことが最も重要なんだなと最近思う。


終わりに
 まだまだドライの研究を始めたばかりで、分からないことだらけではあるのだが、今の感覚を可能な限り言語化できたように思う。いつかドライに関する記事も書けるよう、精進していくつもりだ。

この記事が気に入ったらサポートをしてみませんか?