ESM-2 × 貝葉斯最佳化 × ProteinMPNN × REINFORCE 強化學習
| 模組 | 用途 | 主要 API | 狀態 |
|---|---|---|---|
src/embeddings.py |
ESM-2 特徵抽取、延遲載入、批次推論與平均池化 | ESM2Embedder.transform(seqs) | ✅ 已測試 |
src/predictor.py |
MLP 代理模型(LayerNorm + Dropout)、AdamW 訓練,並以 Pearson / Spearman 評估 | PredictorTrainer.fit() .evaluate() | ✅ 已測試 |
src/bayes_opt.py |
高斯過程 + qLogEI、PCA 降維與 BoTorch 整合 | BayesianOptimizer.run(n_iter) | ✅ 已測試 |
src/protein_mpnn.py |
k-NN Cα 圖建構器、MessagePassingLayer 與交叉熵訓練 | ProteinMPNNTrainer.train_demo() | ✅ 已測試 |
src/rl_reinforce.py |
LSTM 策略網路、REINFORCE 更新、多目標獎勵與教師強制梯度 | REINFORCETrainer.run(episodes) | ✅ 已測試 |
src/data_prep.py |
合成示範資料產生器 + ProteinGym CSV 載入器 | make_demo_data(n, seq_len) | ✅ 已測試 |
run_pipeline.py |
CLI 入口,協調所有模組執行 | --mode all/bo/rl/mpnn | ✅ 已測試 |
demo_notebook.ipynb |
面試現場示範,含逐步說明與內嵌圖表 | Jupyter 筆記本 | ✅ 可用 |
# 安裝相依套件(約 2 分鐘)
pip install -r requirements.txt
# 以真實 ESM-2 嵌入執行完整 pipeline(首次會下載約 30 MB)
python run_pipeline.py --mode all
# 個別模組模式
python run_pipeline.py --mode bo --epochs 100 --bo-iters 20
python run_pipeline.py --mode rl --rl-episodes 50
python run_pipeline.py --mode mpnn
# 互動式示範(Jupyter)
jupyter notebook demo_notebook.ipynb