๊ธฐ๋ฅ ์์ธ ๋ณด๊ณ
๋ถ๋ก โ ์ํคํ ์ฒ ๊ตฌ์ถ ์ ๊ณผ์ (๊ฐ๋ฐ์ฌ)
ํต์ฌ ๊ฒฐ๋ก (๋๊ด์)
โ ๋ณธ ์์คํ ์ "๋ถ๋ฆฌ๋ Silo A/B ์ค๊ณ๋(SYSTEM_ARCHITECTURE.md)"๊ฐ ์๋๋ผ, ์ค์ ๋ก๋ PyRosetta ๊ธฐ๋ฐ ๋จ์ผ ํตํฉ ์์ง(
โก ๊ฐ๋ฐ ๊ถค์ ์ ํ๊ฒฝ๊ตฌ์ถ โ real ๋ํน โ ๋ค๋ชฉ์ โ ์ ํ์ฑ ํ๋กํ ์ฝ ์์ โ home-advantage ฮmargin โ ๋ฌดํ์์ง โ ๋ฒค์น๋งํฌ 7๋จ๊ณ๋ก, ์ ํ์ฑ ๋ํ(best ฮmargin +10.54, ๋์ ์ธก์ 658๊ฑด)๋ ๋์ ์์ง์ ์ฐ๋ฌผ์ด๋ค. ์ค์ธก HIGH
โข ์ ๋ ์ ๋ขฐ๋ ddGยทฮmargin=HIGH, ๋ฐ๊ฐ๊ธฐ=MED, ์ ๋ ๋ ์ฑ=LOW๋ก ์ธตํ๋๋ฉฐ, VR-cycle ๊ฐ๋๊ฐ "๊ณ์ฐ ๋ถ๊ฐ๋ฅ์ ๊ฐ๋ฅํ ์ฒ"ํ๋ ํ๊ฐ์ ์ฐจ๋จํ๋ค. surrogate-์๋ MED
โ ๋ณธ ์์คํ ์ "๋ถ๋ฆฌ๋ Silo A/B ์ค๊ณ๋(SYSTEM_ARCHITECTURE.md)"๊ฐ ์๋๋ผ, ์ค์ ๋ก๋ PyRosetta ๊ธฐ๋ฐ ๋จ์ผ ํตํฉ ์์ง(
ai4sci-kaeri/pyrosetta_flow)์ผ๋ก ์งํํ์ผ๋ฉฐ โ ๋ฌธ์-์ค์ ๊ดด๋ฆฌ(P5)๋ฅผ ์ ์งํ๊ฒ ๋ช
์ํ๋ค. ์ค์ธก HIGHโก ๊ฐ๋ฐ ๊ถค์ ์ ํ๊ฒฝ๊ตฌ์ถ โ real ๋ํน โ ๋ค๋ชฉ์ โ ์ ํ์ฑ ํ๋กํ ์ฝ ์์ โ home-advantage ฮmargin โ ๋ฌดํ์์ง โ ๋ฒค์น๋งํฌ 7๋จ๊ณ๋ก, ์ ํ์ฑ ๋ํ(best ฮmargin +10.54, ๋์ ์ธก์ 658๊ฑด)๋ ๋์ ์์ง์ ์ฐ๋ฌผ์ด๋ค. ์ค์ธก HIGH
โข ์ ๋ ์ ๋ขฐ๋ ddGยทฮmargin=HIGH, ๋ฐ๊ฐ๊ธฐ=MED, ์ ๋ ๋ ์ฑ=LOW๋ก ์ธตํ๋๋ฉฐ, VR-cycle ๊ฐ๋๊ฐ "๊ณ์ฐ ๋ถ๊ฐ๋ฅ์ ๊ฐ๋ฅํ ์ฒ"ํ๋ ํ๊ฐ์ ์ฐจ๋จํ๋ค. surrogate-์๋ MED
1. ๊ฐ๋ฐ 7๋จ๊ณ ์์ฝํ (๊ฐ์กฐ์)
๋ชจ๋ ํ: ์ฃผ์ฅ โ ๊ทผ๊ฑฐ โ ํจ์. ์ ๋ขฐ๋ฑ๊ธ ๋ฐฐ์ง: ์ค์ธก HIGH / surrogate-์๋ MED / surrogate-์ ๋ LOW.
| # | ๋จ๊ณ | ํต์ฌ ๋ณํ | ๊ทผ๊ฑฐ | ์ ๋ขฐ |
|---|---|---|---|---|
| 1 | ํ๊ฒฝ๊ตฌ์ถ | ์ฝ๋ฆฌํ 13๊ฐ ๋ฉ์๋ ๊ฒ์ฆ(16๊ฑด ๋ฒ๊ทธ ์์ ), ํ ์คํธ 35โ62, pepADMET(Tier 1.5) ์ฑํ, SSTR1/3/4/5 ๊ตฌ์กฐ ๋ก์ปฌ ๋ฑ๋ก | [๊ทผ๊ฑฐ: docs/progress_report_20260323.md:20-34]; [๊ทผ๊ฑฐ: docs/progress_report_20260402.md:9-18] | HIGH |
| 2 | real ๋ํน | PyRosetta FlexPepDock subprocess ๋ถ๋ฆฌ(P1, 2026-06-09), ddG/clash ์ค์ธก ์ถ์ถ | [๊ทผ๊ฑฐ: pyrosetta_flow/docking_executor.py:1-76] | HIGH |
| 3 | ๋ค๋ชฉ์ | cheap objectives(๋ฐ๊ฐ๊ธฐ ์์๋ธ+ADMET surrogate) โ GNINA โ ECR โ NSGA-II Pareto โ BO ์ ์ 5๋จ๊ณ | [๊ทผ๊ฑฐ: pyrosetta_flow/scoring_pipeline.py:79-100]; [๊ทผ๊ฑฐ: pyrosetta_flow/multiobjective.py:101-132] | MED |
| 4 | ์ ํ์ฑ ํ๋กํ ์ฝ ์์ | off-target ๋ํน ๋น์ฉ(ํ๋ณดร5์์ฉ์ฒด) ํต์ ์ํด ddG ํ๋ก์ ๊ฒ์ดํธ ๋์ โ ๋ฆฌ๋๋ณด๋ ๋ฏธ์ถฉ์/์ต์ฝ์ฒด ์ด๊ณผ ํ๋ณด๋ง ๋ํน | [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:1-8, 48-56] | HIGH |
| 5 | home-advantage ฮmargin | ฮmargin = selectivity_margin โ native_margin โ native ๊ธฐ์ค์ ๋ณด์ , >0 ๋ง "native ์ด๊ณผ ์ ํ์ฑ"์ผ๋ก ์ธ์ | [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:7]; [๊ทผ๊ฑฐ: pyrosetta_flow/global_leaderboard.py:8] | HIGH |
| 6 | ๋ฌดํ์์ง | continuous.py STOP๊น์ง epoch ๋ฐ๋ณต + DiversityPolicy(์ ์ฒด patience=3 ์ ๋ณ์ด ๋ค์์ฑ ์ํฅ, ์ต๋ 6) + ๊ธ๋ก๋ฒ ๋ฆฌ๋๋ณด๋ ์์ ๋ฉ๋ชจ๋ฆฌ |
[๊ทผ๊ฑฐ: pyrosetta_flow/continuous.py:57-85]; [๊ทผ๊ฑฐ: pyrosetta_flow/global_leaderboard.py:1-8] | HIGH |
| 7 | ๋ฒค์น๋งํฌ | ๋ฌผ์ฑ descriptor rโ1.0 ๊ฒ์ฆ(HIGH), ์ฉํ ๋ ์ฑ: L-aa AUC=0.146 ์ญ๋ณ๋ณ ๊ฒฌ๊ณ (LOW), D-aa AUC=0.677 ์์๋ณ๋ณ(MED) โ 52์ข (50 ํ๊ฐ) ํ์ฅ ์๋ฃ | [๋ฐ์ดํฐ: _analysis/BENCH_admet_v2_results.json; ๊ทผ๊ฑฐ: _evidence/EV12_bench_admet.md:29-37] | ํผํฉ |
2. ๋จ๊ณ๋ณ ์์ธ (์ฃผ์ฅ โ ๊ทผ๊ฑฐ โ ํจ์)
2-1. ํ๊ฒฝ๊ตฌ์ถ โ ์ธก์ ๊ฐ๋ฅ์ฑ ํ๋ณด๊ฐ ์ ํ ์ค์ธก HIGH
- ์ฃผ์ฅ: ๋ํนยท์ค์ฝ์ด๋ง ์ด์ ์ ์ฝ๋ฆฌํ ๋ฉํธ๋ฆญ ์ ํฉ์ฑ๊ณผ off-target ์์ฉ์ฒด ๊ตฌ์กฐ๋ฅผ ๋จผ์ ํ๋ณดํ๋ค.
- ๊ทผ๊ฑฐ:
- ์ฝ๋ฆฌํ 13๊ฐ ๋ฉ์๋ ๊ฒ์ฆ โ 16๊ฑด ๋ฒ๊ทธ ์์ , ํ
์คํธ 35โ62๊ฐ,
peptidesGT ๋๋น 8/8 ์ผ์น [๊ทผ๊ฑฐ: docs/progress_report_20260323.md:20-34] - SSTR1/3/4/5 ๊ตฌ์กฐ๋ฅผ AlphaFold API ์์กด์์ ๋ก์ปฌ CIF๋ก ์ ํ(
pdb_source: alphafoldโlocal) [๊ทผ๊ฑฐ: docs/progress_report_20260402.md:9-18]; ์ปค๋ฐ ec4982f [๊ทผ๊ฑฐ: docs/progress_report_20260402.md:7] - ํจ์: ๋คํธ์ํฌ ์์กด์ฑ์ ์ ๊ฑฐํ๊ณ ์ฆ์ ๋ํน ๊ฐ๋ฅํ ์ํ๋ฅผ ๋ง๋ ๊ฒ์ด ๋ฌดํ์์ง ์ด์(์ํญ ๋ฐ๋ณต)์ ์ ์ ์๋ค.
2-2. real ๋ํน โ surrogate๊ฐ ์๋ ์ค์ธก ฮG ์ค์ธก HIGH
- ์ฃผ์ฅ: ddG/total_score/clash๋ PyRosetta FlexPepDock ์ค์ธก์ด๋ค(ํด๋ฆฌ์คํฑ ์๋).
- ๊ทผ๊ฑฐ: subprocess ๋ ์ด์ด
_run_script()๊ฐ conda Python์ผ๋ก ๋ํน ์คํฌ๋ฆฝํธ ์คํ, stdout ๋ง์ง๋ง ์ค JSON์์ ddGยทclash ํ์ฑ [๊ทผ๊ฑฐ: pyrosetta_flow/docking_executor.py:38-75]. ์ ๋ขฐ๋ฑ๊ธ ํ์์ ddG=HIGH(์ค์ ์๋ฎฌ๋ ์ด์ ) [๊ทผ๊ฑฐ: _evidence/EV09_silo_b_trace.md:311] - ํจ์: ์์คํ ์ 1์ฐจ ์ ํธ(ddG)๋ ์ ๋ขฐ๋ฑ๊ธ ์ต์์์ด๋ฉฐ, ๋ชจ๋ ๊ฒ์ดํธยท์์์ ๊ธฐ๋ฐ์ด ๋๋ค.
2-3. ๋ค๋ชฉ์ โ ๋น ๋ฅธ surrogate๋ก ํ๋ณด ์ ๋ณ, ๋น์ผ ์ ํธ๋ ๊ฒ์ดํธ ํต๊ณผ๋ถ๋ง surrogate-์๋ MED
- ์ฃผ์ฅ: ๋ชจ๋ ํ๋ณด์ ฮผs๊ธ cheap objective(๋ฐ๊ฐ๊ธฐยทADMET)๋ฅผ ์ ์ฉํ๊ณ , ๋น์ผ GNINA/๋ํน์ ์ ๋ณ๋ถ๋ง ์คํํ๋ค.
- ๊ทผ๊ฑฐ: Layer 0 cheap objectives(๋ฐ๊ฐ๊ธฐ ์์๋ธ = ํด๋ฆฌ์คํฑ A + RF C, log10 ์ ๊ทํ ํ๊ท ; native ~16h) [๊ทผ๊ฑฐ: pyrosetta_flow/multiobjective.py:101-132]; 5๋จ๊ณ ํ์ดํ๋ผ์ธ(cheapโGNINAโECRโParetoโBO) [๊ทผ๊ฑฐ: pyrosetta_flow/scoring_pipeline.py:79-100]
- ํจ์: ๋ฐ๊ฐ๊ธฐยทADMET surrogate๋ ์๋์์(MED)๋ก๋ง ์ฌ์ฉ๋๋ฉฐ, ์ ๋๊ฐ์ ์ ๋ขฐํ์ง ์๋๋ค(ยง3 ์ ๋ขฐ๋ฑ๊ธ ์ฐธ์กฐ).
2-4. ์ ํ์ฑ ํ๋กํ ์ฝ ์์ โ ๋น์ฉ ํต์ ์ฉ ddG ํ๋ก์ ๊ฒ์ดํธ ์ค์ธก HIGH
Silo B๋์ ์ ์ ๊ทผ๊ฑฐ โ ๊ธฐ๊ฐ: ๋งค iteration ์ ์ฒด ํ๋ณด off-target ๋ํน(ํ๋ณดร5์์ฉ์ฒดร~6๋ถ, ๋น์ฉ ํญ๋ฐ). ์ฑํ: ddG ํ๋ก์ ๊ฒ์ดํธ โ ์ ํ์ฑ์ ๋ํน ์ ๋ฏธ์ง์ด๋ฏ๋ก ๋ฃจํ ๋ด ์ค์ธก ddG(๊ฐํ ์ ํธ)๋ฅผ ์ ๋ง๋ ๋๋ฆฌ๋ก ์ฌ์ฉ, ๋ฆฌ๋๋ณด๋ ๋ฏธ์ถฉ์์ด๊ฑฐ๋ ์ต์ฝ์ฒด๋ณด๋ค ddG ๊ฐํ ํ๋ณด๋ง ๋ํน. [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:1-8]
- ๊ทผ๊ฑฐ:
should_screen()๊ฒ์ดํธ โ ๊ธฐ๋ํน ์์ด ํํผ, ddG_cutoff(-10.0)๋ณด๋ค ์ฝํ binder ๋ฐฐ์ , ๋ฏธ์ถฉ์/์ต์ฝ์ฒด ์ด๊ณผ ์ ๋ํน; iteration๋น ์ต๋selectivity_max_per_iter(๊ธฐ๋ณธ 2)๊ฑด [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:48-56] - ํจ์: ์ ํ์ฑ ์ ํธ(off-target ๋ํน)๋ ๋น์ธ์ง๋ง HIGH ์ ๋ขฐ์ด๋ฏ๋ก, ๊ฒ์ดํธ๋ก ์ ์ฉ ๋์์ ์ขํ ๋น์ฉ ๋๋น ์ ํธ ํ์ง์ ํ๋ณดํ๋ค.
2-5. home-advantage ฮmargin โ native ๊ธฐ์ค์ ๋ณด์ ์ค์ธก HIGH
- ์ฃผ์ฅ: ๋จ์ margin์ด ์๋๋ผ native ๋๋น ์๋ ํฅ์(ฮmargin)์ผ๋ก ์ ํ์ฑ์ ์ ์ํ๋ค.
- ๊ทผ๊ฑฐ: ์ฝ๋ ์ ๋ณธ ์ฃผ์ "ฮmargin = margin โ native_margin (home-advantage ๋ณด์ , native baseline). >0 = native ์ด๊ณผ ์ ํ์ฑ" [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:7]; ๋์ผ ์ ์ [๊ทผ๊ฑฐ: pyrosetta_flow/global_leaderboard.py:8]
- ํจ์: "native๋ณด๋ค ์ ํ์ฑ์ด ์ข์์ก๋๊ฐ"๋ผ๋ ์ ์งํ ๊ธฐ์ค์ ๊ฐ์ โ ์ ๋ margin ๋ถํ๋ฆฌ๊ธฐ๋ฅผ ์ฐจ๋จํ๋ค. best ํ๋ณด AGCKNFFWKTDTSC๋ ฮmargin +10.54(native ์ด๊ณผ) [๋ฐ์ดํฐ: runs/pyrosetta_flow/global_selectivity_leaderboard.json:9-12]
2-6. ๋ฌดํ์์ง โ ์๋ ด ํ์ถ + ์์ ๋ฉ๋ชจ๋ฆฌ ์ค์ธก HIGH
- ์ฃผ์ฅ: ๋ฐ๊ตด์ STOP ํ์ผ ์ ๊น์ง epoch๋ฅผ ๋ฐ๋ณตํ๋ฉฐ, ์ ์ฒด ์ ๋ณ์ด ๋ค์์ฑ์ ์๋ ์ํฅํ๋ค.
- ๊ทผ๊ฑฐ:
DiversityPolicy.update()โ global best ฮmargin์ด patience(๊ธฐ๋ณธ 3) epoch ์ ์ฒด ์ levelโ(max 6),max_random_mutations = min(6, base 3 + level)[๊ทผ๊ฑฐ: pyrosetta_flow/continuous.py:57-85]; ๊ธ๋ก๋ฒ ๋ฆฌ๋๋ณด๋๊ฐ epoch ๊ฐ ๋ฉ๋ชจ๋ฆฌ(๋ํน ์์ด dedupยทbest ๋จ์กฐ ์ถ์ ) ์ ๊ณต [๊ทผ๊ฑฐ: pyrosetta_flow/global_leaderboard.py:1-8] - ํจ์: local optimum ํ์ถ ๋ฉ์ปค๋์ฆ์ด ์ฝ๋ ์์ค์ ๋ด์ฅ๋์ด, ๋์ ์ด์์ด ๋จ์ ๋ฌด์์ ์ฌ์์๋ณด๋ค ํจ์จ์ ์ด๋ค.
2-7. ๋ฒค์น๋งํฌ โ ์ ํํ ๊ฒ๊ณผ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋ถ๋ฆฌ surrogate-์ ๋ LOW
- ์ฃผ์ฅ: ๋ฌผ์ฑ์ ๊ฒ์ฆ ๊ฐ๋ฅ(HIGH), ์ ๋ ์ฉํ ๋ ์ฑ ์์ธก์ ๊ฒ์ฆ ์ ์ญ๋ณ๋ณ(LOW)์์ ์ ์ง ๋ ธ์ถํ๋ค.
- ๊ทผ๊ฑฐ:
- ๋ฌผ์ฑ descriptor(GRAVY/Instability/Aliphatic) r=1.0, pI 0.9968ยทBoman 0.9718 โ
peptides์ฐธ์กฐ๋๊ตฌ ๋๋น [๊ทผ๊ฑฐ: _evidence/EV12_bench_admet.md:29-37] - 52์ข (50 ํ๊ฐ, L32/D18) ์ฉํ ๋ถ๋ฅ: ์ ์ฒด AUC=0.32(์ํ), L-aa AUC=0.146(n=32, ์ญ๋ณ๋ณ ๊ฒฌ๊ณ ), D-aa AUC=0.677(n=18, ์์ ๋ณ๋ณ). LL-37ยทCecropin A ๋ฑ ๋น์ฉํ AMP๋ฅผ ์คํ [๋ฐ์ดํฐ: _analysis/BENCH_admet_v2_results.json; ๊ทผ๊ฑฐ: 15_admet_benchmark.md]
- ํจ์: HC50์ ์ ๋ ๋จ์ ๊ธ์ง, native ๋๋น ์๋ ๊ฒ์ดํธ ์ ์ฉ โ ์ด๊ฒ์ด ๋ฒค์น๋งํฌ๊ฐ ์ฐ์ถํ ์ ์ฑ ๊ถ๊ณ ๋ค [๊ทผ๊ฑฐ: _evidence/EV12_bench_admet.md:138-144].
3. ๋ผ์ด๋ธ ์ฐ์ถ ์ค๋ ์ท (์ค์ธก ์ง๋ ) ์ค์ธก HIGH
๋ฌดํ์์ง ๊ฐ๋ ์ค โ ์๋ ์์น๋ ์ง๋ ์์ ๊ฐ(์ฆ๊ฐ ์ถ์ธ). [๋ฐ์ดํฐ: runs/pyrosetta_flow/global_selectivity_leaderboard.json], [๋ฐ์ดํฐ: runs/pyrosetta_flow/discovery_status.json]
| ํญ๋ชฉ | ๊ฐ | ๊ทผ๊ฑฐ |
|---|---|---|
| best ฮmargin | +10.5351 | [๋ฐ์ดํฐ: global_selectivity_leaderboard.json:3] |
| top-K ๋ณด๊ด(n_unique) | 50 | [๋ฐ์ดํฐ: global_selectivity_leaderboard.json:4] |
| ์ญ๋ ๋ํน ์์ด(n_screened_unique) | 628 | [๋ฐ์ดํฐ: global_selectivity_leaderboard.json:5] |
| ๋์ ์ธก์ (n_ingested_total) | 658 | [๋ฐ์ดํฐ: global_selectivity_leaderboard.json:6] |
| ์คํ epoch(epochs_done) | 107 | [๋ฐ์ดํฐ: discovery_status.json] |
| best ํ๋ณด / ddG | AGCKNFFWKTDTSC(F11D) / โ45.11 kcal/mol | [๋ฐ์ดํฐ: global_selectivity_leaderboard.json:9-10] |
- ์ฃผ์ฅ: ์ ํ์ฑ ํต์ฌ์ pos11(Phe11โAsp/Glu) ๋ณ์ด๋ค.
- ๊ทผ๊ฑฐ: top-2 ์ ํ์ฑ ํญ๋ชฉ์ด F11D(ฮ+10.54)ยทF11E(ฮ+8.97)๋ก, native T(avg ฮ+4.30) ๋๋น ํ์ . FWKT(seq[6:10]) ๋ฌด๊ฒฐ ์ ์ง [๊ทผ๊ฑฐ: _evidence/BIO_biology.md:43-49]
- ํจ์: ๊ธฐ์ ๋ฏธ๊ฒ์ฆ(LOW) โ pos11 ์ํ์ ๋์ ์ in-silico ์ ํธ๋ ๊ฐํ๋ ์์ฉ์ฒด ์๊ธฐ ์ ์ด ๊ธฐ๋ฐ ๊ตฌ์กฐ ์ค๋ช ์ ๋ฏธ์ํ [๊ทผ๊ฑฐ: _evidence/BIO_biology.md:13, 49].
4. ๋ฌธ์-์ค์ ์ํคํ ์ฒ ๊ดด๋ฆฌ (P5) โ ์ ์ง ๋งคํ
Silo A๊ดด๋ฆฌ ํต์ฌ โ
docs/SYSTEM_ARCHITECTURE.md์ ๋ถ๋ฆฌ๋ Silo A/B(pipelines/silo_a|b/)๋ ์ต์์์ ๋ถ์ฌํ๋ฉฐ, ์ค์ ํ์ฑ ์ฝ๋๋ ๋
๋ฆฝ ๋ ํฌ ai4sci-kaeri/์ ํตํฉ ์์ง์ด๋ค. [๊ทผ๊ฑฐ: _evidence/EV14_arch_gap.md:7-16]
| ๊ตฌ์ฑ | ์๋ (์ค๊ณ ๋ฌธ์) | ์ค์ (ํ์ฑ ์ฝ๋) | ๊ทผ๊ฑฐ |
|---|---|---|---|
| ๋๋ ํ ๋ฆฌ | pipelines/silo_a/, silo_b/ ๋ถ๋ฆฌ |
ai4sci-kaeri/pyrosetta_flow/ + AG_src/pipeline/ ํตํฉ |
[๊ทผ๊ฑฐ: docs/SYSTEM_ARCHITECTURE.md:24-30]; [๊ทผ๊ฑฐ: EV14_arch_gap.md:59-103] |
| Config | Silo๋ณ ๋ ๋ฆฝ YAML | ๋จ์ผ AG_src/config/pipeline_config.yaml |
[๊ทผ๊ฑฐ: EV14_arch_gap.md:107-116] |
| NIM ํด๋ผ์ด์ธํธ | bionemo/ 5์ข
(MolMIMยทDiffDockยทRFdiffยทMPNNยทESMFold) |
ํ์ฑ repo์ ๋ถ์ฌ, ๋ฐฑ์
์๋ง(_backup/orphaned_20260609/bionemo/); ๋ก์ปฌ PyRosetta๋ก ๋์ฒด |
[๊ทผ๊ฑฐ: EV14_arch_gap.md:136-147]; [๊ทผ๊ฑฐ: EV08_silo_a_trace.md:43-52] |
| Silo A ์คํ | 3-Arm end-to-end | ์คํ ํ์ ์์ โ outputs/silo_a/ ๋ฏธ์กด์ฌ, NIM ํค ๋ฏธ์ค์ , ๋จ์ํ
์คํธ(mock) 9๊ฑด๋ง ํต๊ณผ |
[๊ทผ๊ฑฐ: EV08_silo_a_trace.md:14-17, 136-144] |
| Scoring | UnifiedScorer(A) / MultiObjectiveScorer(B) ๋ถ๋ฆฌ |
scoring_pipeline.py+multiobjective.py ํตํฉ, Arm ๊ตฌ๋ถ ์์ |
[๊ทผ๊ฑฐ: EV14_arch_gap.md:151-162] |
- ์ฃผ์ฅ: ๊ดด๋ฆฌ๋ ๊ฒฐํจ์ด ์๋๋ผ ์ํคํ ์ฒ ์งํ์ ๊ฒฐ๊ณผ(ํด๋ผ์ฐ๋ NIM โ ์จํ๋ ๋ฏธ์ค PyRosetta, monolithic ํตํฉ)์ด๋ฉฐ, ๋ณธ ๋ณด๊ณ ๋ ์๋ ๊ตฌ์กฐ๊ฐ ์๋ ์ค์ ์ฝ๋ ์์น ๊ธฐ์ค์ผ๋ก ๊ธฐ์ ํ๋ค.
- ๊ทผ๊ฑฐ: ๊ทผ๋ณธ์์ธ 4๊ฐ์ง(์ํคํ ์ฒ ์งํ/์ธํ๋ผ ์ฌ๊ตฌ์ฑ/๋ ํฌ ๋ ๋ฆฝํ/๋ฌธ์ ๋ฏธ๋๊ธฐ) [๊ทผ๊ฑฐ: EV14_arch_gap.md:221-228]
- ํจ์: ์ ๊ท ์ธ๋ ฅ ์จ๋ณด๋ฉ ํผ๋(P5 Critical) โ
SYSTEM_ARCHITECTURE.md์ ์ค์ ๊ตฌ์กฐ ๊ธฐ๋ฐ ์ฌ์์ฑ์ด ๊ถ๊ณ ๋๋ค [๊ทผ๊ฑฐ: EV14_arch_gap.md:240-244].
flowchart LR
subgraph DOC["์ค๊ณ ๋ฌธ์ (์๋)"]
A1["pipelines/silo_a/
3-Arm NIM"]:::siloA B1["pipelines/silo_b/
๋ณ์ด+๋ํน"]:::siloB end subgraph REAL["ํ์ฑ ์ฝ๋ (์ค์ )"] AG["ai4sci-kaeri/pyrosetta_flow/
(ํตํฉ ์์ง)"]:::siloB BK["_backup/orphaned_20260609/
silo_a ยท bionemo (๋นํ์ฑ)"]:::siloA end A1 -. "๋ฏธ์คํ: outputs/silo_a ๋ถ์ฌ, NIM ํค ์์" .-> BK B1 == "์งํ: monolithic ํตํฉ" ==> AG classDef siloA fill:#eaf2fc,stroke:#1a6fbf,color:#0d3a66; classDef siloB fill:#eafaf0,stroke:#1a8a4a,color:#0d4a26;
3-Arm NIM"]:::siloA B1["pipelines/silo_b/
๋ณ์ด+๋ํน"]:::siloB end subgraph REAL["ํ์ฑ ์ฝ๋ (์ค์ )"] AG["ai4sci-kaeri/pyrosetta_flow/
(ํตํฉ ์์ง)"]:::siloB BK["_backup/orphaned_20260609/
silo_a ยท bionemo (๋นํ์ฑ)"]:::siloA end A1 -. "๋ฏธ์คํ: outputs/silo_a ๋ถ์ฌ, NIM ํค ์์" .-> BK B1 == "์งํ: monolithic ํตํฉ" ==> AG classDef siloA fill:#eaf2fc,stroke:#1a6fbf,color:#0d3a66; classDef siloB fill:#eafaf0,stroke:#1a8a4a,color:#0d4a26;
5. VR-cycle / Stage ์งํ ์ด๋ ฅ (ํ๊ฐ ๊ฐ๋)
์ถ์ฒ: ํ๋ก์ ํธ CLAUDE.md ยง"Stage ์ ์ฉ ์ด๋ ฅ". harness ์ด๋ํ ์ด์ (Apache-2.0 revfactory/harness ์ถ์ถ)์ ์๊ธฐ-๊ฒ์ฆ ์ฌ์ดํด.
| ํญ๋ชฉ | ๋ด์ฉ | ํจ์ |
|---|---|---|
| Stage 5 | pharmacology_guards.py + 33โ39 ํ๊ท ํ
์คํธ โ ์ฝ๋ฆฌํ lookup table ํ๊ฐ ์ฐจ๋จ(Critical) |
์ง์ด๋ธ ์ฝ๋ฆฌ ์์น ์ฐจ๋จ |
| Stage 8d~8i | End-to-End dogfooding๋ก ยง๊ฒ์ฆ ํญ๋ชฉ 10๊ฑด ์ฒ๋ฆฌ(5 full+1 ํก์+4 partial), 95/95 tests; GATE-F(echo)ยทGATE-G(ํ ํฐ) ๋ฑ ์ฌํ ์ฒดํฌ ์ถ๊ฐ | ์ฌ์ดํด์ด ์๊ธฐ ๊ฒ์ฆํญ๋ชฉ์ ์๊ธฐ-closure |
| VR-cycle-09 (H-06) | "๊ณ์ฐ ๋ถ๊ฐ๋ฅ์ ๊ณ์ฐ ๊ฐ๋ฅํ ์ฒ" ์๋ณยท์ฆ์ closure โ 3-layer(harness+planner+domain). harness ๋ณธ์ง = "๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋ ธ์ถ, ์ ํ๋ ๋ณด์ฅ X" | LOW ์ ํธ๋ฅผ HIGH๋ก ์์ฅํ๋ ํ๊ฐ์ ๊ทผ์ |
| Stage 9 | Rosetta Flow E2E dogfood(3 iter, patience early stop) โ 6 critical ๊ฒฐํจ ์๊ฐ ๋ ธ์ถ + VR-cycle-10~14 ๋ฑ๋ก | ๋ฌดํ์์ง ์ด์ ๊ฒฐํจ์ ์๊ธฐ ๋ ธ์ถ |
- ์ฃผ์ฅ: ๋ณธ ์์คํ ์ ์ ๋ขฐ๋ฑ๊ธ ์ธตํ(HIGH/MED/LOW)๋ ์ฌํ ์ฅ์์ด ์๋๋ผ VR-cycle-09(H-06) ๊ฐ๋๊ฐ ์ฝ๋ยทํ๋๋ยท๋๋ฉ์ธ 3๊ณ์ธต์์ ๊ฐ์ ํ๋ ์์น์ด๋ค. [๊ทผ๊ฑฐ: CLAUDE.md ยงStage ์ ์ฉ ์ด๋ ฅ, Stage 8h]
- ํจ์: "์ ๋ ๋ ์ฑ LOW", "๋ฐ๊ฐ๊ธฐ MED", "ddG/ฮmargin HIGH" ๋ถ๋ฅ๋ ํ๊ฐ ๊ฐ๋์ ์ง์ ์ฐ๋ฌผ์ด๋ฉฐ, ๋ถํ๋ ค์ง ์ ๋๊ฐ ์ฃผ์ฅ์ ๋ณธ๋ฌธ์์ ๋ฐฐ์ ํ๋ค.
6. ์ ๋ขฐ๋ฑ๊ธ ์์ฝ (์ ์งํ) surrogate-์๋ MED
| ์งํ | ์ ํ | ์ ๋ขฐ | ๊ทผ๊ฑฐ |
|---|---|---|---|
| ddG (FlexPepDock) | ์ค์ธก ์๋ฎฌ๋ ์ด์ | HIGH | [๊ทผ๊ฑฐ: EV09_silo_b_trace.md:311] |
| selectivity_margin / ฮmargin | ์ค์ธก off-target ๋ํน + native ๋ณด์ | HIGH | [๊ทผ๊ฑฐ: _evidence/EV09_silo_b_trace.md:312-313]; [๊ทผ๊ฑฐ: pyrosetta_flow/selectivity_loop.py:7] |
| ๋ฐ๊ฐ๊ธฐ(half_life_h) | ์์๋ธ surrogate, ์์ ๋ฐ์ดํฐ ๋ฏธํฌํจ | MED | [๊ทผ๊ฑฐ: EV09_silo_b_trace.md:314] |
| ADMET ๋ฌผ์ฑ(GRAVY/Instability/Boman/pI) | ๊ฒฐ์ ๋ก ์ descriptor, rโ1.0 | HIGH | [๊ทผ๊ฑฐ: _evidence/EV12_bench_admet.md:29-37] |
| ์ ๋ ์ฉํ ๋ ์ฑ(HC50) โ L-aa | ๋ฒ์ฉ ์์ธก ROC-AUC 0.146(n=32) ์ญ๋ณ๋ณ ๊ฒฌ๊ณ | LOW | [๋ฐ์ดํฐ: _analysis/BENCH_admet_v2_results.json] |
| ์ฉํ ๋ ์ฑ(HC50) โ D-aa | ROC-AUC 0.677(n=18) ์์ ๋ณ๋ณ ํ์ธ | MED | [๋ฐ์ดํฐ: _analysis/BENCH_admet_v2_results.json] |
| pos11 ๋ณ์ด ๊ธฐ์ | ๊ตฌ์กฐ ์ ์ด ๋ฏธ์ธก์ | [๋ฏธ๊ฒ์ฆ] | [๊ทผ๊ฑฐ: _evidence/BIO_biology.md:13, 49] |
7. ๋ฏธ๊ฒ์ฆ ๊ฒฉ๋ฆฌ (๋ณธ๋ฌธ ๋ฐฐ์ ํญ๋ชฉ)
- [๋ฏธ๊ฒ์ฆ] 2026-05-28 ํ์ ํ์๋ก โ ์์ ์ผ์ ๋ง ํ์ธ, ์ค์ ๊ฒฐ๊ณผ ๋ฏธ์์ง [๊ทผ๊ฑฐ: EV15_timeline_sources.md:190]
- [๋ฏธ๊ฒ์ฆ] Silo A
diversityํผ์ฒ โ UnifiedScorer 0.10 ๊ฐ์ค์น ์ค์ ์ด๋ ์ด๋ค Arm๋ ๊ณ์ฐํ์ง ์์ [๊ทผ๊ฑฐ: EV08_silo_a_trace.md:130, 188] - [๋ฏธ๊ฒ์ฆ] pos11 ์ ํ์ฑ์ ๊ตฌ์กฐ์ ๊ธฐ์ โ in-silico ์ ํธ๋ง, ์์ฉ์ฒด ์ ์ด ์ค๋ช ์์ [๊ทผ๊ฑฐ: BIO_biology.md:49]
- [๋ฏธ๊ฒ์ฆ] D-aa ์ฉํ ๋น๊ต โ pepADMET 47์ข ์ฌ๊ณ์ฐ ์งํ์ค, ์ธ์ ํ๋๋ก ๋ฏธ์ [๊ทผ๊ฑฐ: _evidence/EV12_bench_admet.md:229-240]
๊ทผ๊ฑฐ ์ ์ฑ : ๋ชจ๋ ์ฌ์ค ์ฃผ์ฅ์ ์ธ๋ผ์ธ ๊ทผ๊ฑฐ(์ฝ๋ path:line / ๋ฌธํ / ์ฐ์ถ JSON). ๊ทผ๊ฑฐ ๋ฏธํ๋ณด ํญ๋ชฉ์ ยง7์ [๋ฏธ๊ฒ์ฆ] ๊ฒฉ๋ฆฌ. ๋ผ์ด๋ธ ์์น๋ ๋ฌดํ์์ง ๊ฐ๋ ์ค์ด๋ผ ์ง๋ ์์ ์ ๋ฐ๋ผ ์ฆ๊ฐํ ์ ์์.