Как построены оба конформерных ресурса: браузер 427 циклометаллированных Ir(III) комплексов и одиночный ансамбль Ir[(C₆H₄)₂PPh₂]₃ (D3). ПО с версиями, источники, последовательность действий, независимая кросс-валидация, термодинамика, литература, код и команды воспроизведения. Аналог xpd.biometal.xyz/methods.html.
На mol.biometal.xyz живут два конформерных ресурса, построенных по одной «аудит-скорректированной» методологии (общий контур: полуэмпирика GFN2-xTB + дедупликация собственным proper-rotation Kabsch + опциональная CENSO ΔG-переоценка):
| Ресурс | Что | Первичный сэмплер | Роль CREST |
|---|---|---|---|
| /conformers | 427 циклометаллированных Ir(III) комплексов (C,N-хелаты, dark IC₅₀ < 10 µM из BiometalDB/MetalCytoToxDB) | Uniconf (UFF/NLOPT) торсионные сиды → GFN2-xTB opt | независимая кросс-валидация покрытия |
| /conformers/irp-d3 | одиночный гомолептический Ir[(C₆H₄)₂PPh₂]₃, D3, Ir₁P₃C₇₂H₅₄ (130 атомов); НЕ в 427-DB | CREST (iMTD-GC, GFN2) метадинамика | CREST — сам первичный сэмплер |
Ключевое различие: для 427-DB первичная генерация — Uniconf-сиды → GFN2-xTB оптимизация, а CREST/GFN2-xTB применяется как независимая проверка полноты. Для D3 первичный сэмплер — сам CREST(iMTD-GC). Оба сходятся в общий хвост: GFN2-xTB opt → proper-Kabsch + энергетический дедуп → GFN2 ранжирование + Boltzmann → (где нужно) CENSO free energies.
| Пакет | Версия | Роль |
|---|---|---|
| Uniconf | v1.0.1 (UFF + NLOPT) | торсионные сиды для 427-DB (MK≤3000); мануал uniconf_manual.pdf |
| xTB (GFN2-xTB) | 6.7.0 | геометрическая оптимизация + single-point энергии при корректном per-complex charge/spin |
| CREST | 3.0.2 | конформерный сэмплинг (iMTD-GC метадинамика); первичный для D3, валидационный для 427-DB |
| CENSO | xtb-backend | free-energy переоценка (Gtot = E + ΔGsolv(ALPB) + GmRRHO(bhess)) |
| Architector | — | rescue-геометрия координационно-невалидных источников (комплекс 5833) |
| proper-rotation Kabsch | собств. kabsch_rmsd | защищённый RMSD-«эталон» (U@Vt, только proper rotation; регрессия 3/3) |
| NumPy | 1.26.4 | требуется кросс-валидационными скриптами (/usr/bin/python3); билдер — repo venv |
| RDKit | — | парсинг/2D, топологические графы |
| ORCA | 6.1.1 | (историч.) DFT-опт отдельных комплексов (PBE0/def2-SVP, напр. Ir_opt_loose); НЕ collection-wide |
| Flask / 3Dmol.js | — / CDN | веб-сервер (:8502, systemd) + 3D-рендер |
Железо: тяжёлые прогоны для 427-DB — на кластере Hive (t06/t07, 56 ядер, CREST 3.0.2 + xtb 6.7.0, 125 GB RAM). Ансамбль D3 считался на выделенном Vast.ai-инстансе (Xeon E5-2680v4, 28 ядер, $0.073/час) — чтобы не трогать ни NUC, ни hive-задачи.
charge_uhf_map.json.--opt normal).kabsch_rmsd +
энергетический порог: RMSD 0.5 Å И энергия 0.1 kcal/mol сливают дубликаты в общие
бассейны. SDF сортируется по GFN2-xTB энергии (низшая первой).build_conformers_opt.py считает на запись heavy-atom
rmsd_max, rmsd_mean, rmsd_max_3kcal (окно ΔE≤3 kcal/mol),
n_unique_basins — 340/427 записей ненулевые (мульти-конформерные), 87 «жёстких» = 0.Их нельзя смешивать — это разные представления:
| Поверхность | Кол-во | Что это |
|---|---|---|
Канонические source-faithful геометрии (conformers.xyz/.sdf) |
8 777 / 427 | полный набор исходных геометрий, каждая с GFN2-xTB single-point энергией при корректном charge/spin. Аудит audit_xtb_coverage.py: 8777/8777, 0 failed SP, 0 gaps. Набор НЕ мутировался ни одним улучшением. |
Браузерный / QM-refined индекс (data/zenith_conformers.json) |
6 285 / 427 | число distinct GFN2-xTB минимумов после RMSD/энергетической дедупликации (не научная величина, а счётчик distinct-минимумов). Было 6 320 → 6 285 (P2-8 ужесточил дедуп; P1-4 добавил новые distinct-минимумы). |
| Координационно-валидные записи | 426 / 427 | coordination_ok=True; 1 документированный caveat (5750). НЕ безусловное «427/427 октаэдричны». |
Чтобы проверить, что Uniconf→GFN2-xTB-набор покрывает реальный low-energy ансамбль, запущен
независимый CREST/GFN2-xTB сэмплинг (Hive T07, per-complex charge/spin) и сравнён по heavy-atom
RMSD (proper-rotation kabsch_rmsd).
0/1490 → текущая 0/1974.)Frame-weighted (FW) и per-complex macro-average + 95% bootstrap CI (B=2000, seed=20260710):
| Класс | usable | @1.0 Å FW / macro | @1.5 Å FW / macro | @2.0 Å FW / macro |
|---|---|---|---|---|
| rot0 | 20 | 86.9% / 93.1% | 97.7% / 98.1% | 100% / 100% |
| rot1–3 | 21 | 92.9% / 87.9% | 99.3% / 96.7% | 100% / 100% |
| rot4–6 | 21 | 77.3% / 84.7% | 89.7% / 88.5% | 94.6% / 93.9% |
| rot≥7 | 22 | 88.0% / 61.7% | 98.8% / 82.7% | 99.4% / 87.4% |
FW и macro сильнее всего расходятся для rot≥7 (88.0% vs 61.7% @1.0 Å): несколько high-frame-count комплексов доминируют FW-сумму — обе поверхности показываются, чтобы одна не читалась как другая.
Энергии в браузере по умолчанию — GFN2-xTB электронные (не free energy). Для
282-комплексного decision-critical подмножества (near-degenerate top-1/top-2, gap < 1.0 kcal/mol)
сделана subset-only CENSO xtb-backend ΔG-переоценка:
Gtot = E(GFN2) + ΔGsolv(ALPB) + GmRRHO(bhess).
Под ΔG 118/282 (41.8%) меняют топ-конформер. Показано на карточке значком
ΔG; 427-индекс поля ΔG НЕ несёт; полный DFT-CENSO
(ORCA/TURBOMOLE) был невыполним на доступном железе и НЕ заявляется.
Комплекс: гомолептический Ir[(C₆H₄)₂PPh₂]₃, формула
Ir₁P₃C₇₂H₅₄, 130 атомов, charge 0, uhf 0 (Ir(III) d⁶ low-spin синглет). Октаэдр
из 6 Ir–C связей (2.128 Å); три некоординирующих фосфониевых P⁺
(4-координатные, 3.78 Å от Ir). Одиночный decision-critical комплекс, НЕ в 427-DB.
Метод (аудит-скорректированный пайплайн):
--ewin 8 --noreftopo (charge 0, uhf 0). CREST full-mode шёл ~12 ч и намеренно
остановлен на завершённом цикле 616 конформеров (diminishing returns; plan B оператора).--opt normal каждого сида (617 сидов).Gtot = E(GFN2,gas,ohess) + ΔGsolv(ALPB, MeCN), где G_gas включает
GmRRHO(bhess, 298.15 K).Compute: выделенный Vast.ai instance 44398564 (Xeon E5-2680v4, 28c, $0.073/час), ~$1.1 суммарно, инстанс уничтожен после ретрива.
| Метрика | Значение |
|---|---|
| CREST кадры → сиды → coord-valid same-graph | 616 → 617 → 617/617 |
| Геометрически-различных минимумов | 188 |
| Электронный диапазон (ΔE) | 10.25 kcal/mol |
| Распределение ΔE: ≤0.05 / ≤0.5 / ≤1 / ≤2 / ≤10 kcal/mol | 25 / 84 / 125 / 149 / 187 |
| CENSO ΔG (40 low-E, MeCN) — весь разброс | в пределах 0.49 kcal/mol |
| Наинизший по G — индекс конформера | 33 (pops ~2.7–3.5%) |
uniconf_manual.pdf (Chem. Phys. Lett.)./root/.hermes-agent2/biometaldb — git (master), сервис systemd
biometaldb-molserver.service (:8502) → Caddy mol.biometal.xyz. Тяжёлый compute-workspace:
/root/conformer-generation. Deliverables D3: /root/irp_d3_conformers_results/ (NUC),
stage-скрипты /root/irp_d3_stage/.427-DB (репозиторий):
scripts/build_conformers_opt.py (метрики разнообразия, идемпотентный),
scripts/build_zenith_conformers.py.conformers/audit_xtb_coverage.py (8777/8777, all-zero gaps).conformers/crossval_geometry.py::kabsch_rmsd +
регрессия conformers/test_crossval_geometry.py.conformers/crossval_connectivity.py, crossval_report.py,
crossval_energy_windowed.py, final_crossval_analysis.py,
crest_balanced_coverage.py.conformers/reports/COMPLETENESS_AUDIT_2026-07-09.md (до-remediation снимок),
COMPLETENESS_AUDIT_ADDENDUM_2026-07-10.md (закрытие),
BALANCED_COVERAGE_2026-07-10.{md,json}, REPRODUCIBILITY.md (Markdown-версия этой страницы).conformers/censo_thermo/censo_dG_subset.json. Индекс: data/zenith_conformers.json (gitignored, регенерируем).conformer_routes.py, irp_d3_routes.py, methods_routes.py (эта страница).D3 (данные на сервере): data/irp_d3/ — conformers_final.xyz (188 ранжированных),
conformers_final_meta.json, thermo_summary.json (CENSO ΔG), IrP_D3_input.mol.
Endpoints: ⬇ .xyz · meta.json ·
thermo.json.
# === A. 427-DB: перестроить индекс + аудиты (из корня репо) === cd /root/.hermes-agent2/biometaldb venv/bin/python3 scripts/build_conformers_opt.py # -> 427 / 6285 / 8777, идемпотентно (sha256 стабилен) venv/bin/python3 conformers/audit_xtb_coverage.py # -> 8777/8777 energy, ALL-ZERO GAPS = PASS python3 -m unittest -v conformers/test_crossval_geometry.py # защищённый RMSD-эталон 3/3 # Независимая CREST кросс-валидация (proper-rotation Kabsch, numpy 1.26.4) /usr/bin/python3 conformers/crossval_connectivity.py /root/conformer-generation/results/crest_crossval_gap004_20 /usr/bin/python3 conformers/crossval_report.py /root/conformer-generation/results/crest_crossval_gap004_20 /usr/bin/python3 conformers/crossval_energy_windowed.py /root/conformer-generation/results/crest_crossval_gap004_20 3.0 /usr/bin/python3 conformers/crest_balanced_coverage.py /root/conformer-generation/results/confbal/out conformers/reports # -> 0/1974 graph changes; 96.0% @1.0 A (99.8% @2.0 A); worst miss 2.70 A (4911) # === B. D3 ансамбль (один комплекс; пример контура) === # CREST iMTD-GC сэмплинг (GFN2, charge 0, uhf 0) crest IrP_D3_input.xyz --gfn2 --chrg 0 --uhf 0 --ewin 8 --noreftopo -T 28 # -> GFN2-xTB --opt normal каждого сида -> proper-Kabsch+E дедуп (0.1 kcal/mol И 0.5 A) # -> coord/same-graph фильтр (6 Ir-C) -> GFN2 ранжирование + Boltzmann -> CENSO ΔG (MeCN) # -> 616 кадров -> 188 distinct минимумов; deliverables в /root/irp_d3_conformers_results/ # === Публикация (сервис) === sudo systemctl restart biometaldb-molserver.service # :8502 -> Caddy mol.biometal.xyz