羊土社から発売されている「Pythonで実践生命科学データの機械学習」という参考書が非常に良かったので、本記事ではこの参考書で学べること、良いところを紹介します。
最近注目されている、AIを使ったライフサイエンスの基礎と応用を橋渡しする、有用な参考書。
ライフサイエンス分野で、「これから機械学習を使ってみたい・取り入れてみたい」という人におすすめしたい、最先端論文で使用されている解析方法のレシピ集です!
「Pythonで実践 生命科学データの機械学習」で学べたこと
この参考書を手に取ったきっかけは、私自身
- 細胞に薬剤をかけてその応答の予測モデルを生成
- 生成したモデルの解析を行い、応答に起因する因子の重要度を定量、メカニズムの特定
- 主に使用していたアルゴリズムはサポートベクターマシン、ランダムフォレスト、LightGBM、k近傍法、PCAなど
ということを、とりあえず特許化できる程度に触っていた状態で、
「他にどんなアルゴリズムでどんなことができるのかを学びたいから」というのがきっかけでした。
実際に読んでトライしてみた感想は、
学会や論文で報告されていた最新の解析レシピがわかりやすく解説されており、ライフサイエンス分野での機械学習の用途について俯瞰して学ぶことができて、期待以上の内容の参考書でした。
「Pythonで実践 生命科学データの機械学習」で解説されていること
機械学習を使った実践的な内容が中心。
冒頭の数章で機械学習の基本的なところに触れ、その後は実践的な解析レシピの解説がふんだんに収録されています。
個人的に特に参考になったのは下記の内容です。
- データの前処理
- サポートベクターマシン(SVM)を使った正常細胞orがん細胞の分類
- ニューラルネットワークで分類、画像判別、抗原・抗体親和性予測
- 変分オートエンコーダ(VAE)でシングルセル解析
- オートエンコーダでマルチオミクス解析
- 自然言語処理でアミノ酸配列からタンパク質の局在の予測
- ランダムフォレスト、LightGBM、畳み込みニューラルネットワーク(CNN)でAI創薬
データの前処理
機械学習のキモです。
実際の所、機械学習はライブラリのおかげで、既存のコードをコピペすれば少しの調整で動きます。
しかし、このときに使用するデータを正しく下ごしらえしないと、とんでもない結果を出してきます。
この下ごしらえが「データの前処理」で、ここを理解しているかどうかが正しく機械学習をするための重要なポイントです。
「Pythonで実践 生命科学データの機械学習」では、この前処理の方法、確認方法について詳しくわかりやすく解説されています。
ちなみに、機械学習のコードは原理をあまり理解していなくても動かせますが、結果の妥当性の判断や改善・トラブルシューティングをしていこうと思った際には、原理をある程度知っておかないと難しいところがあります。
原理や基礎を学べる有用な参考書として下記の2冊がおすすめです。
サポートベクターマシン(SVM)を使った正常細胞orがん細胞の分類
前述したデータの前処理のステップで取り扱った、mRNAの情報から肝細胞が正常 or がんかを予測、分類するモデルを解説したレシピです。
SVMは機械学習のモデルの中で特に有名なアルゴリズムの一つです。
2つの選択肢のうち、どちらなのかを分類するのが得意です。
ニューラルネットワークで分類、画像判別、抗原・抗体親和性予測
深層学習の基礎、ニューラルネットワーク
PyTorchという便利なライブラリを用いてニューラルネットワークの実装をします。
上記のSVMと同様にmRNAの情報を学習させ、肝細胞が正常 or がんの予測、分類をします。
実際にSVMと比較してみると、実はそこまで複雑でない問題はSVMや決定木のほうが良いということが解説されています。
リッチな手法であるほど優れていると思いがちですが、問題に応じて適切な手法の選択が重要であることが学べます。
畳み込みニューラルネットワーク(CNN)を用いた画像の識別
CNNはニューラルネットワークに畳み込み層というものをつけることで、より特徴的な(局所的な)特徴を抽出して、画像などを識別することができるアルゴリズムです。
医療画像診断データからどの領域にがんが存在しているかを識別するモデルのレシピが解説されています。
他にも細胞の画像から感染症に感染しているかどうかを判別するモデルの解説もあります。
人の目でみると、熟練した知識と経験が必要な匠の技を自動化する注目の手法ですね。
流れとしては、Kaggleからのサンプルデータをダウンロード→モデルの実装までを学ぶことができます。
がん免疫療法についての抗原抗体の親和性予測
がん免疫療法では、がん細胞でのみ発現し、かつ免疫細胞に認識されるペプチド配列の予測がキモになるそうです。
これに対し、機械学習(CNN)を用いて、腫瘍特異的なペプチド配列を同定するレシピが解説されています。
変分オートエンコーダ(VAE)でシングルセル解析
細胞の遺伝子発現の解析で一般的な手法になりつつあると言われています。
しかし、まだ課題や改善点も多いと言われており、そのうちの一つがノイズが多くなることが挙げられています。
このscRNA-seqのデータに含まれるノイズ除去方法として、VAEを用いた次元削減の手法が解説されています。
高次元のデータを圧縮、低次元での表現、潜在変数を得て、潜在変数から再び高次元のデータに戻すという手法で、ノイズのないより真の値に近いデータを得ることができるようです。
次元削減の手法としては主成分分析(PCA)が有名ですが、VAEで処理をすることで、PCAよりも良いスコアを得ることができることが学べます。
オートエンコーダでマルチオミクス解析
「マルチオミクス解析」とは、マルチ(多数の)オミクス解析(ゲノミクス、トランスクリプトミクス、プロテオミクス、メタボロミクスなどの情報解析)を合わせたものです。
個々の独立した解析ではなく、それぞれを組み合わせて、その関連について着目して解析する手法です。
そして「オートエンコーダ」とは、ニューラルネットワークの一つで、次元削減をして、入力したデータがどのような特徴を持つかを見分けるアルゴリズムです。
この参考書では、上記の手法を用いてがんの予後予測などのクラスタリングを行い、疾患メカニズムの解明や創薬ターゲットの同定を同定を行う入口が解説されています。
自然言語処理でアミノ酸配列からタンパク質の局在の予測
「ChatGPT」で今非常に熱い、自然言語処理。
生命現象と一見どう結びつくのか疑問に思います。
実はDNAやタンパク質と関係があり、DNAは核酸(アルファベット4文字)、タンパク質はアミノ酸(アルファベット20文字)の配列で構成されています。
これを「言語」として捉えることで、自然言語処理が応用できるとのこと。
この参考書ではTransformerやBERT(Bidirectional Encoder Representations from Transformes)というモデルを用いて、アミノ酸配列からタンパク質の局在を読み解くレシピ(タンパク質が細胞質、核、ミトコンドリア等のどこに局在しているかを予測するモデルの作り方)が解説されています。
ランダムフォレスト、LightGBM、畳み込みニューラルネットワーク(CNN)でAI創薬
AI創薬とは、AIを用いて
- 膨大な薬の開発コスト、時間の削減
- 患者に効く薬を予測することで、医療費の削減
などを目的とした取り組みです。
これに対し、
「ランダムフォレスト」という、分類、回帰、クラスタリングでよく使用される決定木べースのアルゴリズム
「LightGBM」という勾配ブースティング決定木の一種で、決定木ベースのアルゴリズム。最近多くの注目を集めている人気のアルゴリズム。
「畳み込みニューラルネットワーク(CNN)」
を用いた、化合物の水への溶解度の予測モデルの作成レシピが解説されています。
この参考書では、水への溶解度についてのモデルでしたが、この手法を応用して教師データを変えることで様々なモデルを作ることができます。
例えば、抗菌活性のデータを教師データとして用いると、新規抗菌薬を発見できるモデルになるなど。
どんな人に向いている参考書か
実際に一通りやってみて、ある程度AIアルゴリズムに触れたことがある人に大きな恩恵があると感じました。
実践的なレシピ集なので、機械学習のアルゴリズムの解説は最低限となっており、これから始めてみたい人、やり始めた人には少しきついかもしれません。
特に、pythonに掲載されているコードはある程度時間が経っているものもあり、ライブラリのバージョン変更に伴う仕様変更などがあり、そのまま使えないケースやダウンロードしてきたデータの形式の影響で上手く動かないなどのアクシデントがありました。
ここを自分で解決できる程度のpythonやデータの前処理の知識が無いと学習を進めるのはややきついように感じます。
とは言っても、始めにどんなレベルが必要なのかを確認したり、どんなことができるかを具体的に知り、そこを一つのゴールとして設定し、効率的に必要な知識を学ぶための準備に使用するという、難しいことに食らいつく胆力のある初心者にもおすすめできると思います。
大変かもしれませんが、これが一番速くゴールに辿り着く方法だと思います。
また、非常に実践的な活用例・レシピ集ということもあり、AIに詳しい人がライフサイエンス系の用途について学ぶということに関しては更に大きな恩恵があるのかなと思いました。
どんな使い方が良いか
自分のようなAIの手法にやや馴染みのあるレベルとしては
- 一通り具体的な使用用途・アルゴリズムを学ぶ
- 理解の浅い基礎を学ぶ、復習する
- 自分の興味のあるデータで実践する
という使い方で、非常に役にたっています。
また、この参考書の使い方というか、参考書でわからないこと、詰まったことを解決する役立つTipsとして、
わからない処理をしているコードがあった時、ChatGPTに「以下のコードに詳細なコメントを入れてください。」と文言を入れて、付属のコードのわからない所をコピペすると、とってもわかりやすい処理のコメントをつけてくれるのでおすすめです。
まとめ
以上、「Pythonで実践 生命科学データの機械学習」から学んだことのアウトプットでした。
最近注目されているAIを使ったライフサイエンスの基礎と応用を橋渡しする、有用な参考書でした。
巻末には初心者に向けた、pythonや機械学習の勉強方法も解説されていて、
やや基礎の学習が完了した人向けな内容ですが、食らいつく気力のある初心者にこそ是非おすすめしたい一冊です。
コメント