従来の VS は LBVS(配列・指紋)と SBVS(3D 構造ドッキング)の二極化で、いずれも専門的な入力整形と計算設定が必要だった。化学者が「BBB 透過性の高い GABA-A 受容体リガンド」のように自然言語で意図を直接クエリする手段は乏しい。
→ テキスト・SMILES・タンパク配列を共通潜在空間に揃え、3D 不要のゼロショット VS を実現したい。
| Step | 入力 | 処理 |
|---|---|---|
| 1 | "ACE阻害剤を探す" 等 | SciBERT で text → embedding |
| 2 | ChEMBL / 自社ライブラリ | ChemFormer で SMILES → embedding(事前計算) |
| 3 | — | cosine 類似度でランキング (zero-shot) |
| 4 | top-k 候補 | テキスト目標方向に潜在空間を移動 → 最適化候補を生成 |
| 5 | 候補 SMILES | QED / SA フィルタ + 化学者レビュー |
3D 構造・ドッキング設定不要。embedding を事前計算しておけばテキストクエリから秒単位で候補リストが返る。
lib/docking: テキスト→候補の事前フィルタとして UniDockRunner の前段に配置。10万 → 数千への絞り込みでドッキング工数を大幅削減。
lib/molgen: MolgenYaml の scorer に CoDrug embedding 距離を追加し、「ACE 阻害+低毒性」のようなテキスト目的関数を直接最適化。
lib/fep: 候補を MMGBSAEngine に流し込む前段でテキスト整合性スコアによる精選を行う。