1 Chemoinformatics Hackathon in YOKOHAMA 2025 Hiroaki Gotoh
Hackathonの目標 2 ハッカソンは、「ハック(Hack)」と「マラソン(Marathon)」を組み合わせた言 葉で、限られた時間内にチームや個人でアイデアを出し合い、プログラムやサー ビスを一気に作り上げるイベントです。スピード感と創造性が重視されます! スキルを学び競い合う 協力して何かを形にする 分子構造データから 記述子を作成 し、予測する 普段一緒に研究していない人と 共同作業を行う •機械学習モデルを構築して予測 •可視化・評価を通じて結果を理解 •役割分担して成果物を作成する経験 •チームでの発見や工夫を共有する Hackathon の本質: 「スキルを学ぶ」ことと「協力して何かを形にする」ことの両方を体験する
全体の流れとスケジュール 3 データセット(test_private)で評価 + プレゼン資料を提出 データセット(train, test_public)で評価 データは、3つに分割してお渡しします。その中でモデルを作成して、評価してください
ケモインフォマティクスの概要 化合物の情報 直接変換困難 分子記述子 変換, 抽出, 選定 原子数: C 6, H 6, O 1 フラグメント: ArOH , 1 分子量: 94.1 4 物性や選択性 選択性: 位置、ジアステレオ、エナンチオ 反応性: 進行可否、要因解明 食品科学: 抗酸化能、キレート能 機能性物質: 光重合開始剤 アルゴリズム、解釈 分子の特性などの特徴量を数字に変換 ケモインフォマティクスは、分子の特徴を数値化し、機械学習や統計的手法を 用いて、物性予測・機能解明・材料設計へと応用する枠組みを提供する
今回のテーマは、細胞の毒性予測 5 1. HIT CALL •アッセイデータで用いられる指標。 •化合物が 活性(Active)か非活性(Inactive)か を二値的に判定した結果。 •判定基準はアッセイごとに異なりますが、一般的には 濃度反応曲線(dose-response curve) をフィットして、 • 有意なシグナル変化があるかどうか • 閾値を超えるかどうか によって決まります。 2. AC50 •Activity Concentration at 50% の略。 •化合物がアッセイ応答の 半分の効果を示す濃度。 •濃度応答曲線をロジスティック関数などでフィッティングして求めます。 •単位は通常 µM。 3. 両者(HIT CALLとAC50)の関係 •HIT CALL = Active であれば、原則としてその化合物には AC50値が定義されます。 •HIT CALL = Inactive の場合、応答が基準を超えないため AC50は算出されない(欠損値や大きな上限値が 入ることが多い)。 •つまり: • HIT CALL = Active → 有意な応答あり、AC50が算出可能。 • HIT CALL = Inactive → 応答なし、AC50はNaNや > 最大濃度(20μMや30μM)。 Inacitive だけどAC50 が小さい 4. HIT CALL は 有意な応答強度を伴わないと Active にならない HIT CALL は単純に AC50 だけで判定されるのではなく、 濃度応答曲線の形状が妥当か 応答の大きさ(TOP)が一定の閾値以上か 統計的に有意か などを含めた総合的な基準で決まる Active だと毒性がある。Activeとされた化合物の中でAC50が小さいと、毒性がより強い。
データセットの紹介 同じ細胞に対する毒性試験。 6 データ元を探して正解データを導くことは、お控えください。 データセット(train, test_public) test_publicとtest_privateのデータは、学習には使わないでください。 使われていたら、点数を0点にします。 データセット(test_private) HIT 部分を予測する ための訓練や評価 に使用する。 最終的には、[Inactive]か[Active]のラベルをつける。 test_privateはtest_publicに化合物が100個追加されています。 予測するのは、 [Inactive]か[Active]の2値分類です。
チュートリアルコードと使用したライブラリー 7 データの可視化 • Pandas:表形式データ処理(CSV/Excelの読 み書き、集計) • Matplotlib:汎用的なグラフ描画 • Seaborn:美しい統計可視化(Matplotlib拡 張) 機械学習 • scikit-learn:基本的な機械学習(分類・回 帰・評価) • XGBoost:高精度な勾配ブースティング • LightGBM:高速・軽量な勾配ブースティング ケモインフォマティクス • RDKit:分子構造の扱い(読み込み、可視化、 操作) • Mordred:分子記述子の計算 https://github.com/gotoh-poclab/chemoinformatics-hackathon-2025 後で、全員、チュートリアルコードは動くことを確認いたします。
8 全体像と使用ライブラリー データ収集 データベース 実験 文献 化合物と問題 に関する情報 を収集 検索 (完全、 部分、類似) 化合物の情報 Phenol C1=CC=C(C=C1)O 数値化 分子記述子 計算化学 で算出 分子力学 分子軌道法 など 物理化学: 融点、水溶性など スペクトル: NMR, IR など 食品科学: 匂い、味、毒性 など 選択性: オルト、パラの位置で反応など 2次元, 3次元表記, 反応表記 RDKit 原子数: C 6, H 6, O 1 フラグメント: ArOH , 1 分子量: 94.1 Mordred 物性や選択性 直接 変換 困難 解釈 評価 Scikit-learn Pandas アルゴリズムと予測 前処理 モデルの種類の検討 記述子 選択 • • • • 線形モデルと非線形モデル KEYWORDS 記述子特性 逆解析 化学空間 内挿と外挿 データの 分割 (訓練, 検証, テスト) 回帰 YYPLOT 分類 混同行列
学習や情報提供 https://zenn.dev/poclabweb?tab=books 作成中ですが途中経過を無料公開中です。 インターネットにアクセスできる人ならば、1から学べます。 さらに、学びたい人は、「ケモインフォマティクス 入門書」で検索 9
記述子作成 分子記述子とは? • 分子の構造を数値ベクトルに変換したもの • 機械学習モデルに入力できるようにするための「特徴量」 代表的な分子記述子 • 物理化学的特徴 10 入力例 • 分子量、LogP(水溶性/疎水性)、極性表面積(TPSA) • 構造的特徴 • 原子数、結合数、環の数、芳香環の有無 • 部分構造フラグメント • 官能基(–OH, –NH₂, –Cl など)の有無 • 分子フィンガープリント • 分子をビット列で表現(類似性検索や分類でよく使う) 出力例 記述子作成に使うツール • RDKit : 分子の基本的な記述子やフィンガープリント • Mordred : 1800種類以上の記述子を自動計算可能 チュートリアルコードでは、RDKitのDescriptorsから数個選んで使用しているが 自作や他のライブラリーなど、何を使用しても問題ありません。
機械学習モデル 機械学習モデルの役割 •分子記述子(数値ベクトル)を入力として活性(Active / Inactive)を予測する分類器を構築 11 入力例 代表的なモデル • ランダムフォレスト (RandomForest) • 多数の決定木を組み合わせたモデル • 初学者向け、解釈しやすい、安定した精度 • XGBoost / LightGBM • 勾配ブースティング(Gradient Boosting)系 • 高精度・高速・チューニングしやすい • 実務やコンペでよく使われる • ロジスティック回帰 / SVM / KNN • シンプルだが基礎が理解しやすい • 少数の特徴量なら有効 • SVMやKNNでは、特徴量の正規化が必要 チュートリアルコードでは、RandomForestを使用していま すが、自作や他のモデルを検討するなども問題ありません。 出力例
解釈や評価 可視化による解釈 12 評価指標 (MCC) 左の例だとモデルがActive に予測しすぎているので MCCの値が低くなっている。 記述子選びやプレゼン資料では、みやすい 今回は、評価指標としてMCCを採用し、MCCの値がより1に近いものを、良いモデルとして評価
Geminiの利用など 13 Geminiを呼び出す 生成された部分が緑色 指令文章(プロンプト) を書けば、コードを書いてくれる 生成AIに聞くときは、明確な指示と適切 な文脈を与えると精度が上がる。 1. 目的・入力・出力の形式 を指定 2. 「なぜ知りたいか」「どう使うか」を伝える 3. 制約条件をつける 4. 具体例を伝える 承認して実行を行えば、実行される 積極的に使って、いただいても構いません。
提出物(1日目の17:45、2日目11:30 締切) 14 1日目 17:45 2日目 11:30 1. 学習を行った結果が記載した .ipynbのファイル 1. test_privateにpredictionのラベル (active or inactive)をつけたcsvファイル • train, test_publicの2つで評価されているこ とが必須 • test_publicは学習には使用しないようにモデ ルを作成してください。 2. 成果発表会に使用するPDFファイル • 形式や枚数は自由ですが、各チーム5分以内 で、発表を行なってください。 • 自分のチーム以外で発表が良かったチーム に全員投票してもらいます。 • 提出された.pynbのファイルは全員で共有する。 3. 最終的な学習結果をまとめた.ipynbのファ イル 提出は、Slackの全員が参加しているチャンネルに行ってもらいます。
まとめ 15 • 今回のHackathonを通じて、 「分子構造 → 記述子 → モデル → 評価」 の一連の流れを体験する。 • 技術的なゴール: ケモインフォマティクスの基礎を学び、機械学習モデルで予測を行う力を養う • 体験的なゴール: 普段一緒に研究していない人と協力し、限られた時間で成果物を作る経験を 得る • 限られた時間の中で工夫したアイデアや、チームでの協力は大きな成果です。 今後の研究や学びにつなげてください。 制限時間内にできるだけ良いものを作成したチームには表彰がありますが、、、 「できたこと」よりも「何を学んだか」「どう協力したか」が大切です。
Q&A 16 今までのところで何か質問がある人は、いますか? チュートリアルのコードを動かしながら、実演して、そ の後、各チームごとに別れて進めますので、その時 に質問していただいても構いません。