一覧へ

オープンな基盤構造と親和性予測 — Boltz-2とChai-1によるAlphaFold3の壁を乗り越える

MITライセンスのオープンな基盤であるBoltz-2(2025)とChai-1を使用することで、タンパク質複合体の3D構造と結合親和性(log10 IC50)をミリ秒単位で統合的に予測できます。AlphaFold3のライセンスおよびインフラストラクチャの負担なしに、FEPよりも1000倍高速に精度を達成します。FASTA + SMILES → YAML → 結合ポーズ + 親和性、バッチスクリーニング、PDBbindベンチマーク、PyMOLによる可視化のための完全なパイプライン。

上級
|
45
|
検証済み (2026-07)
進捗0/15 (0%)

オープンソースの統合構造と親和性予測:Boltz-2とChai-1でAlphaFold3を超える

2024年5月にAlphaFold3がリリースされ、構造生物学の分野に再び革命をもたらしました。しかし、実際の研究室や創薬チームがAlphaFold3をローカルで実行するには、2つの課題を克服する必要があります。それは、テラバイト規模のゲノムデータベースと、学術利用限定のライセンスです。2024年11月、MIT/GenentechはBoltz-1を完全にオープンソース(MITライセンス)としてリリースし、2025年にはBoltz-2が結合親和性予測を統合し、ハイスループット創薬スクリーニングのための実用的なツールとなり、Free Energy Perturbation (FEP+)よりも1000倍高速に動作するようになりました。本記事では、このオープンソースツールの組み合わせを使用して、本格的な創薬パイプラインを構築する方法を説明します。

📚 推奨される前提知識(強く推奨)

本記事は、AI × Bioの本格的な高度学習シリーズの集大成です。以下のDryBench教材を事前に確認することを強くお勧めします。

前提知識を確認せずに本記事を読むと、3D座標処理のためのトランスフォーマーアーキテクチャ、PyTorchにおける大規模モデルのロードとGPU管理、Claude Codeを使用したパイプラインの自動化、およびBio-AIの一般的な理解という前提知識が求められるため、実践的なコードを理解するのが難しくなります。


DryBenchコースで学んだこと

DryBench ai-native #3では、トランスフォーマーは、シーケンスだけでなく、3D座標やグラフなどの任意の構造化データも処理できるように拡張できることを学びました。#12では、PyTorchが大規模モデルのパラメータをGPUメモリにロードし、混合精度やフラッシュアテンションなどの最適化を利用する方法を学びました。#14では、Claude Codeは、反復的なパイプラインスクリプトを合理化するための実用的なツールであることを学びました。そして、#15では、構造予測が、より広範なBio-AI統合の文脈の中でどのように位置づけられるかを学びました。

次に、実際の創薬チームにとって、「単にAlphaFold3を持っている」だけでは不十分である理由を見てみましょう。構造予測だけでは、リガンドがどれだけ強く結合するか(親和性)はわかりません。従来、この答えは、1つのリガンドあたり数日から数週間かかるFEP(Free Energy Perturbation)計算によって得られます。Boltz-2は、これら2つの側面(構造+親和性)を1つのニューラルネットワークのフォワードパスに統合し、ミリ秒単位の結果を生成します。これは、創薬スクリーニングが劇的に変化するポイントであり、本記事ではその実践的な実装を提供します。

本格的な問題定義

創薬スクリーニングの実際的な要件

特定のターゲットタンパク質(例:特定のキナーゼ)について、1000以上の候補となる低分子化合物をスクリーニングして、効果的なヒットを特定する必要があります。従来のアプローチ:

  • ドッキング(AutoDock Vina、Glide): 1つのリガンドあたり数秒から数分かかります。ただし、ポーズは概ね正しいものの、親和性の精度は低い(相関係数r~0.4~0.5)。
  • FEP+(Schrödinger): 1つのリガンドあたり数日かかります。高い精度(r~0.8+)。ただし、商用であり、ライセンスは非常に高価です。
  • AlphaFold3: 優れた複合構造を提供しますが、直接親和性を出力するものではありません。別途スコアリングが必要です。
  • Boltz-2: 構造+親和性(log10 IC50の近似値)を出力します。FEP+に近い精度。1つのリガンドあたりミリ秒から数秒かかります。

本記事で取り上げるパイプラインの目標は次のとおりです。

  • ターゲットタンパク質の配列+1000個の候補リガンドのSMILES → 24時間以内にスクリーニングを完了します。
  • 上位20件の親和性の高い候補を自動的にランク付けし、自動PyMOL視覚化を生成します。
  • 複数のコンフォメーションに対応: 各リガンドに対して複数のポーズをサンプリングし、アンサンブルスコアリングを実行します。
  • 再現性を確保: すべての実行は、タグ追跡のために1つのYAML構成ファイルで定義されます。

なぜBoltz-2とChai-1で、AlphaFold3ではないのか?

  • ライセンス: AlphaFold3は、学術的な非商用利用の承認が必要であり、商用利用には別途交渉が必要です。Boltz-1/2とChai-1はオープンソースです(BoltzはMIT [1]、Chaiは研究目的で無料、商用利用は別途[2])。
  • インフラストラクチャの負担: AlphaFold3は、UniRef、MGnify、PDBなどのテラバイト規模のデータベースをローカルで同期する必要があります。Boltz-2は、代わりにMMseqs2リモートAPIを使用できます[1]。
  • 親和性の統合: AF3は構造のみを予測します。Boltz-2は構造+親和性予測を統合します[1]。
  • 速度: Boltz-2は、FEP+よりも1000倍高速です(公開された結果に基づく[3])。
  • 商用利用の自由: MITライセンスには、商用利用に対する制限はありません。Chai-1は有料の商用APIを提供します。

ツールセットとインフラストラクチャ要件

ツール役割ライセンス
Boltz (v2, pip install boltz)構造と親和性予測の統合MIT
Chai-1 (chai_lab)別の予測モデル/アンサンブルパートナー研究目的であれば無料、商用利用は別途
MMseqs2 リモート API (BioLM 無料版)MSA(多配列アライメント)の構築(ローカルデータベースは不要)GPL v3(MMseqs2自体)、APIはBioLMのポリシーに従う
RDKitSMILES形式の解析、リガンドの処理BSD-3-Clause
PyMOL (オープンソース版)3D構造の可視化LGPL
BiopythonPDBファイルのポストプロセスBiopython License
PyTorch, CUDAニューラルネットワークのバックエンドBSD

インフラストラクチャ要件:

  • 実用的な最小要件: 24GB VRAMのデータセンターGPU、または高性能なコンシューマーGPU(RTX 4090 24GB)x 1。Boltz-2はfp16で約15GB VRAMを消費し、より大きな複合体では20GB以上が必要になる場合があります。
  • CPUフォールバック: 非常に遅く(1回の予測に30分以上かかる)、実質的に使用できません。
  • RAM: 32GB以上。
  • ディスク: Boltzのモデルサイズは約2〜5GB、Chai-1は約5GB、MSAキャッシュは数GBです。
  • ネットワーク: MMseqs2リモートAPIの呼び出しには、ターゲットごとに数MBの通信が必要です。

学習者向けの概算費用: ローカルGPUがない場合は、クラウドのオンデマンドGPUインスタンスの1時間あたりの料金を参照してください(例:24GB VRAM)。1000個のリガンドをスクリーニングするには、約2〜4時間のGPU時間が必要です(Boltz-2の論文におけるベンチマークに基づく[3])。

実用的なパイプラインの実装

全体的な流れ:

mermaid

ステップ1:ターゲットタンパク質のMSAリモート構築

MMseqs2をローカルにインストールし、UniRefをダウンロードする代わりに、リモートAPIを使用します。Boltzは複数のリモートMSAサーバーをサポートします[4]。

python
from pathlib import Path
from dataclasses import dataclass
import requests
@dataclass
class MSAResult:
"""複数の配列アライメントの結果。"""
query_id: str
a3m_content: str # a3m形式のMSA
depth: int # MSAの深さ(配列の数)
def build_msa_remote(
query_sequence: str,
query_id: str = "target",
api_base: str = "https://api.colabfold.com",
max_depth: int = 5000,
) -> MSAResult:
"""ColabFold MSAサーバー(MMseqs2バックエンド)を使用してリモートMSAを構築します。
Boltzの公式ドキュメントでは、ColabFoldまたはBioLM APIが推奨されています[4]。
"""
# 実際のAPI呼び出し(例:ColabFold MMseqs2 API)
payload = {"query": f">{query_id}\n{query_sequence}", "mode": "env"}
resp = requests.post(f"{api_base}/ticket/msa", data=payload, timeout=600)
resp.raise_for_status()
ticket = resp.json()["id"]
# 完了をポーリングし、待機します
import time
while True:
status = requests.get(f"{api_base}/ticket/{ticket}", timeout=30).json()
if status["status"] == "COMPLETE":
break
elif status["status"] == "ERROR":
raise RuntimeError(f"MSAの構築に失敗しました:{status}")
time.sleep(5)
# a3m結果をダウンロードします
a3m_resp = requests.get(f"{api_base}/result/download/{ticket}", timeout=60)
a3m_resp.raise_for_status()
a3m_content = a3m_resp.text
depth = a3m_content.count("\n>")
return MSAResult(query_id=query_id, a3m_content=a3m_content, depth=depth)
def save_a3m(msa: MSAResult, output_dir: Path) -> Path:
"""a3mファイルを保存します。"""
output_dir.mkdir(parents=True, exist_ok=True)
path = output_dir / f"{msa.query_id}.a3m"
path.write_text(msa.a3m_content)
return path

ステップ2:リガンドライブラリの標準化

SMILESは同じ分子を複数の方法で表現できるため、標準化が必要です。RDKitが標準です。

python
from rdkit import Chem
from rdkit.Chem import AllChem, Descriptors, Lipinski
import pandas as pd
def canonicalize_smiles(smiles: str) -> str | None:
"""SMILESの標準形を返します。解析に失敗した場合はNoneを返します。"""
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return None
return Chem.MolToSmiles(mol, canonical=True)
def lipinski_filter(smiles: str) -> dict:
"""リピンスキーの5則が満たされているか確認し、物理化学的特性を計算します。"""
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return {"valid": False}
props = {
"MW": Descriptors.MolWt(mol),
"LogP": Descriptors.MolLogP(mol),
"HBA": Lipinski.NumHAcceptors(mol),
"HBD": Lipinski.NumHDonors(mol),
"RotB": Lipinski.NumRotatableBonds(mol),
}
violations = sum([
props["MW"] > 500,
props["LogP"] > 5,
props["HBA"] > 10,
props["HBD"] > 5,
])
props["valid"] = True
props["lipinski_violations"] = violations
props["lipinski_pass"] = violations <= 1
return props
def prepare_ligand_library(smiles_list: list[str]) -> pd.DataFrame:
"""リガンドライブラリを標準化し、物理化学的フィルタを適用します。"""
records = []
for i, raw in enumerate(smiles_list):
canon = canonicalize_smiles(raw)
if canon is None:
continue
props = lipinski_filter(canon)
records.append({
"ligand_id": f"L{i:04d}",
"smiles_raw": raw,
"smiles_canonical": canon,
**props,
})
df = pd.DataFrame(records)
return df[df["lipinski_pass"]].reset_index(drop=True)

ステップ3:Boltz-2 YAML設定ファイルの生成

Boltzは、タンパク質 + リガンド + MSAを1つのYAMLファイルで指定します[4]。

python
import yaml
def build_boltz_config(
protein_sequence: str,
protein_msa_path: Path,
ligand_smiles: str,
ligand_id: str,
output_dir: Path,
) -> Path:
"""Boltz YAML設定ファイルを生成します。タンパク質-リガンドペアごとに1つです。"""
config = {
"version": 1,
"sequences": [
{
"protein": {
"id": "A",
"sequence": protein_sequence,
"msa": str(protein_msa_path),
}
},
{
"ligand": {
"id": "L",
"smiles": ligand_smiles,
}
},
],
"constraints": [],
"properties": [
{"affinity": {"binder": "L"}} # 結合親和性の予測を有効にします(Boltz-2の新機能)
],
}
output_dir.mkdir(parents=True, exist_ok=True)
yaml_path = output_dir / f"{ligand_id}.yaml"
with open(yaml_path, "w") as f:
yaml.safe_dump(config, f, sort_keys=False)
return yaml_path

ステップ4:Boltz-2バッチ推論

複数のリガンドを反復処理し、予測を実行します。GPUメモリを考慮したセッション管理を行います。

python
import subprocess
import json
@dataclass
class BoltzResult:
"""Boltz-2予測結果。"""
ligand_id: str
pdb_path: Path # 予測された3D複合構造
plddt_mean: float # 構造の信頼度(0〜100)
iptm: float # インターフェースpTM(0〜1)
affinity_log_ic50: float # 予測されたlog10(IC50 mol/L)(値が低いほど良い)
inference_time_sec: float
def run_boltz_prediction(
yaml_path: Path,
output_dir: Path,
device: str = "cuda",
use_msa_server: bool = False,
) -> BoltzResult:
"""Boltz-2 CLIを実行します(実際にはPython APIも使用できます)。"""
import time
start = time.time()
cmd = [
"boltz", "predict",
str(yaml_path),
"--out_dir", str(output_dir),
"--devices", "1",
"--accelerator", "gpu" if device == "cuda" else "cpu",
]
if use_msa_server:
cmd.append("--use_msa_server")
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
elapsed = time.time() - start
# Boltzはoutput_dir/{name}/{name}_model_0.pdb + confidence.jsonを生成します
name = yaml_path.stem
pdb_path = output_dir / name / f"{name}_model_0.pdb"
conf_path = output_dir / name / f"confidence_{name}_model_0.json"
with open(conf_path) as f:
conf = json.load(f)
# 結合親和性は別のJSONに格納されます(Boltz-2の新機能)
affinity_path = output_dir / name / f"affinity_{name}.json"
affinity_data = json.loads(affinity_path.read_text()) if affinity_path.exists() else {}
return BoltzResult(
ligand_id=name,
pdb_path=pdb_path,
plddt_mean=float(conf.get("complex_plddt", 0.0)),
iptm=float(conf.get("iptm", 0.0)),
affinity_log_ic50=float(affinity_data.get("affinity_pred_value", 0.0)),
inference_time_sec=elapsed,
)

ステップ5:バッチスクリーニングオーケストレーション

すべてのリガンドライブラリを反復処理し、失敗を処理し、進行状況を表示します。

python
from tqdm import tqdm
def batch_screen(
protein_sequence: str,
protein_msa: MSAResult,
ligand_library: pd.DataFrame,
work_dir: Path,
device: str = "cuda",
) -> pd.DataFrame:
"""すべてのリガンドライブラリをスクリーニングします。"""
msa_path = save_a3m(protein_msa, work_dir / "msa")
results = []
failures = []
for _, row in tqdm(ligand_library.iterrows(), total=len(ligand_library), desc="スクリーニング中"):
try:
yaml_path = build_boltz_config(
protein_sequence=protein_sequence,
protein_msa_path=msa_path,
ligand_smiles=row["smiles_canonical"],
ligand_id=row["ligand_id"],
output_dir=work_dir / "configs",
)
boltz_result = run_boltz_prediction(
yaml_path=yaml_path,
output_dir=work_dir / "predictions",
device=device,
use_msa_server=False,
)
results.append({
"ligand_id": boltz_result.ligand_id,
"smiles": row["smiles_canonical"],
"affinity_log_ic50": boltz_result.affinity_log_ic50,
"plddt": boltz_result.plddt_mean,
"iptm": boltz_result.iptm,
"pdb_path": str(boltz_result.pdb_path),
"inference_sec": boltz_result.inference_time_sec,
"MW": row.get("MW"),
"LogP": row.get("LogP"),
})
except Exception as e:
failures.append({"ligand_id": row["ligand_id"], "error": str(e)})
df_results = pd.DataFrame(results).sort_values("affinity_log_ic50")
df_failures = pd.DataFrame(failures)
df_failures.to_csv(work_dir / "failures.csv", index=False)
return df_results

ステップ6:上位K PyMOL可視化

上位の候補の結合ポーズを自動的にレンダリングします。

python
def render_pymol(
pdb_path: Path,
output_png: Path,
ray_trace: bool = True,
) -> None:
"""ヘッドレスPyMOLレンダリング。"""
script = f"""
load {pdb_path}, complex
hide everything
show cartoon, complex and polymer
show sticks, complex and organic
color grey70, complex and polymer
color yellow, complex and organic
bg_color white
zoom complex and organic, 5
{"ray 1200, 900" if ray_trace else ""}
png {output_png}, dpi=150
quit
"""
script_path = output_png.parent / "render.pml"
script_path.write_text(script)
subprocess.run(["pymol", "-cq", str(script_path)], check=True)
def render_top_k(results_df: pd.DataFrame, output_dir: Path, k: int = 20) -> None:
output_dir.mkdir(parents=True, exist_ok=True)
for _, row in results_df.head(k).iterrows():
render_pymol(
pdb_path=Path(row["pdb_path"]),
output_png=output_dir / f"{row['ligand_id']}.png",
)

統合パイプライン

python
def full_screening_pipeline(
protein_sequence: str,
protein_id: str,
smiles_library: list[str],
work_dir: Path,
device: str = "cuda",
top_k: int = 20,
) -> pd.DataFrame:
"""FASTA + SMILESライブラリ -> ランク付けされたDataFrame。"""
print(f"[1/6] リモートMSA構築のリクエスト(クエリの長さ={len(protein_sequence)})")
msa = build_msa_remote(protein_sequence, query_id=protein_id)
print(f" MSAの深さ={msa.depth}")
print(f"[2/6] リガンドライブラリの標準化(生={len(smiles_library)})")
library = prepare_ligand_library(smiles_library)
print(f" リピンスキーパス={len(library)}")
print(f"[3/6] バッチスクリーニングの開始")
results = batch_screen(protein_sequence, msa, library, work_dir, device)
results.to_csv(work_dir / "screening_results.csv", index=False)
print(f"[4/6] 上位{top_k} PyMOLレンダリング")
render_top_k(results, work_dir / "top_k_renders", k=top_k)
print(f"[5/6] 完了:work_dir={work_dir}")
print(f"[6/6] 上位5つのリガンドの概要:")
print(results.head(5)[["ligand_id", "affinity_log_ic50", "plddt", "iptm"]].to_string(index=False))
return results
## Chai-1 アンサンブル検証 (オプションの拡張)
Chai-1 は Boltz と同様の最先端のオープンな基盤モデルであるため、上位候補を Chai-1 で再評価することで、誤検出を減らすことができます [2]。
```python
from chai_lab.chai1 import run_inference
def chai_reverification(
protein_sequence: str,
ligand_smiles: str,
output_dir: Path,
device: str = "cuda",
) -> dict:
"""Chai-1 を使用して、同じペアを再予測します。Boltz の結果とアンサンブルスコアリングを行います。"""
fasta_str = f">protein|name=A\n{protein_sequence}\n>ligand|name=L\n{ligand_smiles}\n"
fasta_path = output_dir / "chai_input.fasta"
fasta_path.write_text(fasta_str)
output_dir.mkdir(parents=True, exist_ok=True)
result = run_inference(
fasta_file=fasta_path,
output_dir=output_dir,
num_trunk_recycles=3,
num_diffn_timesteps=200,
seed=42,
device=device,
use_esm_embeddings=True,
)
return {
"pdb_path": result[0],
"iptm": float(result[0].iptm), # 例として、実際の API を参照してください。
}
def ensemble_ranking(
boltz_score: float,
chai_score: float,
weight: float = 0.5,
) -> float:
"""2 つのモデルからのスコアの重み付き平均 (値が小さいほど良い)。"""
return weight * boltz_score + (1 - weight) * chai_score

パフォーマンス、コスト、および既知の失敗例

パフォーマンスの参照 (公開ベンチマークの引用)

アプローチベンチマーク構造 RMSD (Å)親和性ピアソンの rペアあたりの時間参照
ドッキング (AutoDock Vina)PDBbind core3.5~5.00.4~0.5従来
Glide XPPDBbind core2.5~3.50.55~0.65Schrödinger
FEP+ (Schrödinger)選択されたサブセット0.75~0.85商用
AlphaFold3 (構造のみ)最新の PDB1.5~2.5別途スコアリングが必要秒~分Google DeepMind 2024
Chai-1ベンチマークのサブセット~2.0~0.65秒~分Chai Discovery 2024 [2]
Boltz-1最新の PDB2.0~3.0~0.6MIT/Genentech 2024 [1]
Boltz-2PDBbind など~2.0~0.80 (FEP+ レベル)ミリ秒~秒Wohlwend et al. 2025 [3]

学習者向けの推定コスト

  • API コスト: 0 (ローカル GPU を使用する場合)。MMseqs2 リモート API の無料プランを利用します。
  • GPU 時間: およそ 1 つのターゲット + 1000 個の配位子のスクリーニングに 2〜4 時間 (24GB VRAM GPU を想定)。
  • クラウドオンデマンドサービスを使用する場合、時間ベースの料金が適用される場合があります。
  • ディスクスペース: Boltz の重みは 2〜5GB、結果の PDB + レンダリングは約 500MB です。

3 つの既知の失敗例 (コミュニティ/論文の収集)

  1. 大きな複合体 (>2000 残基) での OOM (メモリ不足) 症状: 24GB VRAM でも、大きな多サブユニット複合体がメモリ制限を超える。 原因: Boltz-2 のアテンションメカニズムは、残基数に対して O(N²) のメモリ複雑度を持つ。 緩和策: (a) --use_flash_attention オプションを有効にする、(b) fp16 を強制する、(c) 大きな複合体の場合、サブユニットごとに予測し、その後、結果を後処理で結合する、(d) 48GB 以上の VRAM GPU が必要。 参照: Boltz GitHub Issues — "OOM for large complexes" スレッド [5]。

  2. 不十分な MSA の深さによる有意な精度低下 症状: 新しい孤立配列またはメタゲノム配列の場合、MMseqs2 リモートは MSA の深さ < 32 を返す可能性があり、Boltz-2 の pLDDT と親和性の信頼性が大幅に低下します。 原因: 基盤モデルは依然として共進化のシグナルに依存しています。 緩和策: (a) MSA の深さが 100 未満の場合、結果に警告フラグを追加する、(b) --msa_server オプションで複数のサーバーを試す、(c) シングルシーケンスモード (MSA なし) を使用して、信頼性を評価する。 参照: Boltz の公式ドキュメントの「MSA の品質」セクション [6]。

  3. 配位子の立体化学を無視することによる誤った結合ポーズ 症状: SMILES 文字列で立体化学が指定されていても、予測は異なる立体異性体の中から任意に選択します。 原因: SMILES の正規化ステップでのキラリティタグの損失、または基盤モデルのトレーニングデータの偏り。 緩和策: (a) Chem.MolFromSmiles(canonical=False) を使用して、元の立体化学を保持する、(b) RDKit の AllChem.EmbedMolecule で 3D 構造を生成し、SDF として入力する、(c) 予測されたポーズのキラリティを検証する。 参照: RDKit Discussions + Boltz Issues (立体化学に関連する複数のスレッド) [7]。

拡張のアイデア

  • フラグメントベースの創薬: 主にフラグメント (< 300 Da) で構成される配位子ライブラリを作成し、Boltz-2 でヒットフラグメントをスクリーニングし、次にリンカーを設計します。
  • ターゲットクラスのベンチマーク: 同じ配位子ライブラリを使用して、キナーゼファミリー全体 (例: MAPK) に対してスクリーニングを繰り返し、選択性マップを作成します。
  • アクティブラーニングループ: 上位の予測に対して実験アッセイを実行し、結果をフィードバックし、モデルを微調整します (ドメイン固有)。
  • タンパク質-タンパク質複合体 + 配位子: Boltz は複数のチェーンをサポートします。抗体-抗原 + 小分子化合物の組み合わせを含むシナリオに拡張します。
  • MCP ツールの公開: パート 14 の MCP エージェントが、このパイプラインをツールとして呼び出すようにして、自律的な創薬研究を可能にします。

次のパート

  • パート 08 docking-hybrid-diffusion: このパートの上位 k 個の候補のポーズを、DiffDock-Glide ハイブリッドを使用して改良します。
  • パート 13 protein-design-multimodal: ESM3 を使用して新しいターゲットタンパク質を設計し、次に Boltz-2 を使用して結合候補をスクリーニングします。
  • パート 14 bio-mcp-agent: このパイプラインを MCP ツールとしてラップして、自律的な創薬研究エージェントを作成します。
  • パート 15 bio-mcp-server-suite: PDBbind および ChEMBL データにアクセスするためのカスタム MCP サーバー。

参考文献

  1. Wohlwend J, Corso G, Passaro S, et al. Boltz-1: 構造予測のためのオープンソース基盤モデル。MIT/Genentech 2024。GitHub: https://github.com/jwohlwend/boltz
  2. Chai Discovery. "Chai-1: 生命の分子間相互作用の解読"。bioRxiv 2024。https://www.biorxiv.org/content/10.1101/2024.10.10.615955v2 / GitHub: https://github.com/chaidiscovery/chai-lab
  3. Passaro S, Corso G, Wohlwend J, et al. "Boltz-2: 高精度かつ効率的な結合親和性予測へ"。bioRxiv 2025。https://www.biorxiv.org/content/10.1101/2025.06.14.659707v1
  4. Boltz 公式ドキュメント (予測の使用法): https://github.com/jwohlwend/boltz/blob/main/docs/prediction.md
  5. Boltz GitHub Issues (メモリ不足、MSA、立体化学): https://github.com/jwohlwend/boltz/issues
  6. Boltz 公式ドキュメント MSA セクション: https://github.com/jwohlwend/boltz/blob/main/docs/msa.md
  7. RDKit ディスカッション (立体化学の標準化): https://github.com/rdkit/rdkit/discussions
  8. Abramson J, Adler J, Dunger J, et al. "AlphaFold 3による生体分子間相互作用の正確な構造予測"。Nature 2024。https://www.nature.com/articles/s41586-024-07487-w
  9. Schrödinger FEP+ (商用): https://www.schrodinger.com/products/fep
  10. PDBbind: http://www.pdbbind.org.cn/
  11. MMseqs2: https://github.com/soedinglab/MMseqs2
  12. ColabFold MSA サーバー (オープンティア): https://github.com/sokrypton/ColabFold
  13. BioLM API: https://biolm.ai/models/
  14. RDKit: https://www.rdkit.org/
  15. PyMOL オープンソース: https://github.com/schrodinger/pymol-open-source
  16. AutoDock Vina: https://vina.scripps.edu/
  17. 最近の PDB ベンチマークセット: https://www.rcsb.org/

💬 質問・コメント

0件のコメント

ログインせずに投稿できます。ゲスト投稿は投稿者自身で編集・削除できません。

0/2000

読み込み中...