본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 01. 14:59

Python으로 생물 의학 월드 모델(Biomedical World Model) 구축하기: SteeraMed Core

요약

SteeraMed Core는 강화학습의 월드 모델 개념을 생물 의학에 적용한 오픈 소스 Python 패키지입니다. DNA 메틸화를 통해 개인의 생물학적 상태를 정량화하고, 특정 화합물이 생물학적 경로를 어떻게 정상화할 수 있는지 시뮬레이션합니다.

핵심 포인트

  • 강화학습 월드 모델을 활용한 생물학적 개입 시뮬레이션
  • 4단계의 감사 가능한 증거 체인을 통한 추론 과정 제공
  • PyTorch/TensorFlow 없이 numpy, pandas 등 기본 라이브러리로 구동
  • MSigDB Hallmark 50 유전자 세트를 활용한 생물학적 경로 분석

만약 여러분이 다음과 같이 질문할 수 있다면 어떨까요? "어떤 화합물이 이 특정 환자의 분자 노화를 되돌릴 가능성이 가장 높을까?" — 그리고 블랙박스 형태의 추천이 아닌, 4단계의 감사 가능한 증거 체인(auditable evidence chain)을 통해 답변을 얻을 수 있다면 말입니다.

그것이 바로 SteeraMed Core가 하는 일입니다. 이는 강화학습 (Reinforcement Learning)의 "월드 모델 (world model)" 개념을 생물 의학에 적용한 오픈 소스 Python 패키지입니다. 즉, 개인의 생물학적 상태가 정상 범주에서 얼마나 벗어났는지 정량화한 다음, 어떤 화합물이 이를 다시 정상으로 유도(steer)할 수 있는지 시뮬레이션합니다.

PyTorch도, TensorFlow도, GPU도 필요 없습니다. 오직 numpy, pandas, scipy, 그리고 matplotlib만 있으면 됩니다.

pip install steeramed-core

이것이 중요한 이유

후성유전학적 시계 (Epigenetic clocks) (Horvath 2013, Hannum 2013)는 DNA 메틸화 (DNA methylation)를 통해 여러분의 "생물학적 연령"을 측정할 수 있습니다. 하지만 노화를 측정하는 것은 첫 번째 단계일 뿐입니다. 진짜 과제는 **개입 (intervention)**입니다. 어떻게 분자 상태를 다시 젊은 프로필로 유도할 것인가 하는 점이죠.

노화의 특징 (Hallmarks of Aging) 프레임워크 (López-Otín et al., Cell 2013, 인용 횟수 15,000회 이상)는 노화의 9가지 특징을 정의했으며, 2023년 업데이트(Hallmarks of aging: An expanding universe)에서 12가지로 확장되었습니다. SteeraMed은 MSigDB Hallmark 50 유전자 세트 (Liberzon et al., Cell Systems 2015)를 사용하여 이 프레임워크를 실행 가능한 형태로 구현합니다. 이는 노화, 암, 면역 및 대사를 다루는 50개의 정제된 생물학적 경로 (biological pathway) 유전자 세트입니다.

참고: MSigDB "Hallmark" (50개 경로 유전자 세트) ≠ 노화의 특징 (12가지 노화 기둥). SteeraMed은 전자를 기능적 모듈 정의로 사용합니다.

생물 의학 월드 모델이란 무엇인가?

강화학습 (Reinforcement Learning)에서 월드 모델 (world model) (Ha & Schmidhuber, 2018)은 서로 다른 행동의 결과를 예측하는 내부 시뮬레이터입니다. AlphaGo가 "내가 여기에 두면 상대방은 무엇을 할까?"를 머릿속으로 시뮬레이션하는 것을 생각해보세요.

이를 생물 의학에 적용하면 다음과 같습니다:

  • 상태 표현 (State representation) — DNA 메틸화 (DNA methylation)를 사용하여 개인이 50개의 생물학적 경로 모듈(biological pathway modules) 전반에서 어떻게 벗어나는지 정량화
  • 행동 시뮬레이션 (Action simulation) — PPI 네트워크(protein-protein interaction network) 상에서 "화합물 X를 적용하면, 교란된 모듈 중 어떤 것이 교정되는가?"를 시뮬레이션
  • 감사 가능한 추론 (Auditable reasoning) — 블랙박스 형태의 출력이 아닌, 4단계의 추적 가능한 증거 체인(evidence chain) 생성
전통적인 시스템 생물학 / AI 신약 개발 (AI Drug Discovery)생물 의학 월드 모델 (Biomedical World Model)
분석 단위집단 평균 (Population mean)개인 (N-of-1)
...

프로젝트 아키텍처 (Project Architecture)

steeramed_core/
├── __init__.py              # 진입점: EvidenceChain + load_example_patient
├── __main__.py              # CLI: 대화형 케이스 선택기 + 배치 모드
...

최소 의존성 (Minimal dependencies):

dependencies = [
    "numpy>=1.21",
    "pandas>=1.3",
...

4단계 증거 체인 (The 4-Layer Evidence Chain)

1단계: 어떤 핵심 경로(Hallmark Pathways)가 교란되었는가?

DNA 메틸화를 PPI (단백질-단백질 상호작용, protein-protein interaction) 네트워크 모듈에 매핑합니다. 50개 모듈 전체를 평가하여, 연령이 일치하는 대조군(controls)으로부터 유의미하게 벗어난 모듈을 찾아냅니다.

# core/delta.py — N-of-1 Delta 벡터
def compute_n1_delta(patient_genes, control_genes):
    """...

노화 사례에서의 예시 결과:

  • NAD+ 대사 모듈 교란 (NAD+ 손실)
  • 염증 모듈 상향 조절 (TNFα/NF-κB, IL-6/JAK/STAT3)
  • 단백질 항상성(Protein homeostasis) 교란 (Unfolded Protein Response)
  • 일부 모듈은 정상 유지 (Hedgehog, Notch signaling)

2단계: 어떤 화합물이 "다시 조종(Steer Back)"할 수 있는가?

**조종 정렬 점수 (Steerability Alignment Score, SA Score)**를 계산합니다. 이는 본질적으로 화합물 타겟 유전자와 비타겟 유전자의 메틸화 델타(methylation deltas)를 비교하는 Welch 유형의 대비 통계량(contrast statistic)입니다.

# core/semo.py
def compute_sa_score(delta, target_genes, all_genes):
    """...

화합물-타겟 데이터는 STITCH 데이터베이스에서 가져옵니다. 순위 산정에는 부트스트랩 샘플(bootstrap samples) 전반에 걸친 중요도 투표 (importance voting) 방식이 사용됩니다:

def rank_compounds_by_importance(sa_matrix, compounds):
    """
    중요도 투표 (Importance Voting): 각 샘플의 top-1 화합물이 1표를 얻습니다.
...```

노화(Aging) 사례 결과: **Niacin #1** (NAD+ 대사 타겟), **Colchicine #2** (항염증). 상위 5개 히트 중 2개가 알려진 노화 방지제(geroprotectors)입니다.

### 레이어 3: 메커니즘 추적 가능성 (Mechanism Traceability)

각 화합물의 메커니즘을 추적합니다: 화합물 타겟 → PPI (Protein-Protein Interaction) 네트워크 이웃 → 허브 유전자 (hub genes) → 해당 Hallmark 경로 (Hallmark pathway).

예시: `Niacin → NAMPT/NAPRT → NAD+ 대사 모듈 → NAD+ 손실`

### 레이어 4: 부트스트랩 신뢰도 (Bootstrap Confidence)

랭킹 안정성을 테스트하기 위해 1,000회의 부트스트랩 재샘플링 (bootstrap resamples)을 수행합니다. top-1 화합물 유지율이 증거 수준을 결정합니다:

| 수준 | 부트스트랩 안정성 | 의미 |
| --- | --- | --- |
| STRONG | ≥80% | 견고한 추천 |
| ... | | |

증거 체인 (evidence chain)은 깔끔한 데이터 클래스 (dataclass)로 구성됩니다:

```python
# core/evidence_chain.py
@dataclass
class EvidenceChain:
...

빠른 시작 (Quick Start)

현재 버전: SteeraMed Core는 GEO에서 가져온 3개의 내장 실제 임상 사례를 포함하는 개념 증명 (proof-of-concept) 데모입니다. 사용자 정의 데이터 업로드 (450K/EPIC 메틸화 어레이) 기능은 향후 릴리스에 추가될 예정입니다. 업데이트 사항은 steerable.world에서 확인하세요.

대화형 모드 (Interactive Mode)

pip install steeramed-core
python -m steeramed_core
SteeraMed Core — N-of-1 Evidence Chain Explorer
=================================================

...

배치 모드 (Batch Mode)

python -m steeramed_core --all             # 모든 사례 생성
python -m steeramed_core --case ra_303     # 특정 사례
python -m steeramed_core --list            # 사용 가능한 사례 목록

Python API — 로드 및 검사 (Load & Inspect)

from steeramed_core import EvidenceChain, load_example_patient

patient = load_example_patient("ra_patient_303")
...

Python API — 모든 차트 생성 (Generate All Charts)

from steeramed_core import load_example_patient
from steeramed_core.viz.patient_card import plot_patient_card
from steeramed_core.viz.drug_ranking import plot_drug_ranking
...

Python API — 출판 품질 피규어 (Publication-Grade Figures)

from steeramed_core.viz.evidence_view import plot_evidence_chain
from steeramed_core.viz.patient_view import plot_patient_view

...

검증 결과 (Validation Results)

3개의 GEO 데이터셋에 대한 회고적 양성 대조군 검증 (Retrospective positive control validation):

코호트 (Cohort)질환 (Disease)N주요 발견 (Key Finding)근거 (Evidence)
GSE40279 (Hannum)노화 (Aging)656니아신 (Niacin) #1, 5개 중 2개 노화 방지제 (geroprotectors)중간 (MODERATE)
...

류마티스 관절염 (RA) 코호트가 가장 강력한 결과를 보여줍니다: 알려진 RA 약물들이 무작위 기대치보다 5.8배 높은 확률로 복구되었으며, 이는 PPI 모듈 수준의 정렬 (alignment)이 의미 있는 약물-질환 매칭을 포착함을 확인시켜 줍니다.

우울증 코호트의 Top-1 화합물(크레아틴, creatine)은 부트스트랩 안정성 (bootstrap stability)이 24.5%에 불과하며, 솔직하게 탐색적 (EXPLORATORY) 단계로 표시되었습니다. 이는 주요 우울 장애 (MDD)의 높은 이질성 (heterogeneity)과 약한 메틸화 신호 (methylation signal)를 반영합니다.

설정 (Configuration)

모든 하이퍼파라미터 (hyperparameters)는 core/config.py에 위치합니다:

# PPI 네트워크
PPI_SCORE_CUTOFF = 400    # STRING 신뢰도 임계값 (confidence threshold)
PPI_MIN_SIZE = 20         # 모듈당 최소 유전자 수
...

시각화 API (Visualization API)

함수 (Function)차트 유형 (Chart Type)크기 (Size)목적 (Purpose)
plot_hallmark_bar()가로 막대 (Horizontal bar)8xN inHallmark 섭동 크기 (perturbation magnitude)
...

모든 시각화 함수는 matplotlib.use('Agg')를 사용하므로, 헤드리스 서버 (headless servers) 및 CI 환경에서도 작동합니다.

솔직한 한계점 (Honest Limitations)

  1. 회고적 검증만 수행 — 양성 대조군 복구 결과이며, 전향적 임상 시험 (prospective clinical trials)이 아님
  2. 부트스트랩 신뢰도 차이 — 우울증 사례의 안정성은 24.5%에 불과함 (탐색적 단계)
  3. 단일 오믹스 (Single omics) — DNA 메틸화 (DNA methylation)만 포함; 전사체학 (transcriptomics)/단백질체학 (proteomics)은 향후 버전에서 추가 예정
  4. 단순 매칭 — 연령 ±5년 + 성별 기준이며, 세포 구성 (cell composition)은 통제하지 않음
  5. 데모 단계 — 3개의 사전 설정된 케이스 제공, 사용자 정의 데이터 업로드 기능 곧 추가 예정

참고 문헌 (References)

참고 문헌 (References)

  1. López-Otín C, et al. The hallmarks of aging. Cell, 2013, 153(6): 1194-1217.
  2. López-Otín C, et al. Hallmarks of aging: An expanding universe. Cell, 2023, 186(2): 243-278.
  3. Horvath S. DNA methylation age of human tissues and cell types. Genome Biology, 2013, 14: R115.
  4. Hannum G, et al. Genome-wide methylation profiles reveal quantitative views of human aging rates. Molecular Cell, 2013, 49(4): 621-635.
  5. Ha D, Schmidhuber J. World models. NeurIPS, 2018.
  6. Liberzon A, et al. The Molecular Signatures Database Hallmark Gene Set Collection. Cell Systems, 2015, 1: 417-425.
  7. Xiong J. World Models for Biomedicine: A Steerability Framework. Preprints.org, 2026. DOI: 10.20944/preprints202605.0366.v1
  8. Xiong J. SteeraMed: A Biomedical World Model for N-of-1 Intervention Reasoning. Preprints.org, 2026. DOI: 10.20944/preprints202605.1578.v1

링크 (Links)

SteeraMed는 DeepoMe 팀에서 개발했습니다. 계산적 장수(computational longevity), 후성유전학적 시계(epigenetic clocks), 정밀 의학(precision medicine) 또는 AI 기반 신약 발견에 관심이 있다면 연락 주십시오!

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0