BIKO GenomeBoard는 VEP/ANNOVAR 주석이 완료된 VCF 파일을 입력으로 받아, 국제 가이드라인(ACMG/AMP)에 기반한 변이 분류와 임상 해석을 수행하고 전문 임상 리포트(HTML/PDF)를 생성하는 온프레미스 파이프라인입니다. 한국인 인구집단 빈도 데이터(KOVA v7, 43.3M variants)를 통합하여 한국인 환자에 최적화된 변이 해석을 제공합니다.
BIKO GenomeBoard의 변이 분류(ACMG/AMP)는 LLM을 사용하지 않는 100% 결정적 Python 규칙 엔진으로 동작합니다. ACMG/AMP evidence code 조합, AMP tiering 우선순위, In silico threshold 판정 등 모든 분류 경로는 국제 가이드라인에 기반하며, 실행할 때마다 동일한 결과를 보장합니다.
이 분류 결과 위에 AI Clinical Board(로컬 MedGemma 27B 기반)가 치료 전략·감별진단·문헌 근거 등 종합 추론을 제공합니다. AI Board는 분류 결과를 입력으로만 사용하며 변경하지 않고, 환자 데이터는 외부 전송 없이 온프레미스 Ollama에서 처리됩니다. MedGemma는 임상 등급이 아니며, 모든 출력에 [AI-Generated] 태그가 붙습니다.
이 리포트는 임상의가 참고할 수 있는 연구 자료이며, 임상적 의사결정 도구가 아닙니다. 모든 해석은 자격을 갖춘 임상의의 검토를 거쳐야 합니다.
추가 입력: AnnotSV TSV (CNV/SV) · InterVar TSV (ACMG evidence) · BED 파일 (TMB 패널 크기)
FoundationOne CDx 스타일 소체 변이 리포트
HPO 기반 희귀질환 후보유전자 분석 리포트
28개 evidence code 기반 결정적 규칙 엔진. 5단계 분류(P/LP/VUS/LB/B). v2.2에서 narrow ClinVar conflict override(engine ≥LP + Conflicting + PM1 hotspot + PM5 4-조건 게이트) 추가.
Cancer + Rare Disease소체 변이 4단계 분류 (Tier I~IV). 전략 A/B/C 전환 가능: CIViC variant-level evidence, OncoKB gene-level, cancer hotspot, ClinVar pathogenic 통합. Drug Response는 Tier I (PGx), Risk Factor/비암 변이는 Tier IV.
CancerREVEL, CADD, AlphaMissense, SpliceAI — VEP CSQ 필드에서 자동 파싱. ClinGen SVI 2022 권고 기준으로 PP3/BP4 evidence 생성. Missense는 REVEL 우선, splice variant는 SpliceAI 우선.
Cancer + Rare DiseaseKOVA v7(43.3M Korean variants)와 gnomAD EAS/ALL 비교. BA1/BS1/PM2 판정과 Korean enrichment ratio(kova/gnomad_eas)를 자동 계산.
Cancer + Rare DiseaseAnnotSV TSV 파싱 → ACMG CNV 2020 Class 1~5 분류. DEL/DUP/INV/BND 지원. Dosage sensitivity 필터링 (ClinGen HI/TS, pLI). Class 4-5 주요소견 + Class 3 DS 테이블 + 통계 요약.
Cancer + Rare DiseaseNonsynonymous coding variants / panel Mb. FDA FoundationOne CDx 방법론 기반. High(≥10) / Intermediate(6~10) / Low(<6) 자동 분류. BED 파일 또는 수동 패널 크기 입력.
CancerVEP consequence + gnomAD constraint + ClinVar로부터 자동 수집: PVS1, PM1, PM4, PM5, PP2, BP1, BP7. v2.2 A3에서 PM1 hotspot table(TP53/KRAS/NRAS/BRAF/EGFR/IDH1-2 등 9 유전자 · PMID 인용 포함)이 추가되어 VEP DOMAINS가 비어있어도 PM1을 발화합니다.
Cancer + Rare DiseaseCYP2D6, CYP2C19, CYP2C9, HLA-B, HLA-A 등 12개 유전자 + APOE 위험인자. CPIC 가이드라인 기반 한국인/서양인 유병률 비교. Korean enrichment flag 자동 산출.
Cancer + Rare DiseaseHPO (Human Phenotype Ontology) 용어 → 연관 유전자 목록 자동 해석. HPO score = 환자 표현형 중 해당 유전자에 연관된 개수. 오프라인 SQLite DB (329K+ 연관 관계) + API fallback.
Rare Disease6개 공인 출처 우선순위 체인: CPIC(PGx) → CIViC(암) → NCBI Gene(일반) → minimal. Orphanet 유병률, GeneReviews 문헌, OMIM MIM 번호 자동 통합.
Cancer + Rare DiseaseInterVar 출력 TSV를 선택적으로 입력하여 추가 ACMG evidence code 수집. 자체 수집 evidence와 중복 제거. InterVar 없이도 자체 evidence collector로 독립 분류 가능.
Cancer + Rare DiseaseGoogle MedGemma 27B 기반 로컬 다전문가 시스템. 모드별 4인 전문의 + Board Chair 구성, Grounded Prompting으로 ClinVar/OncoKB/CIViC 근거를 주입받아 자유 추론 대신 근거 정리를 수행합니다. 결정적 분류 엔진은 절대 변경하지 않고, 모든 출력에 AI-Generated 태그가 붙습니다.
Cancer + Rare Disease Ollama (온프레미스)치료 권고는 OncoKB + CIViC에서 결정적으로 큐레이션된 후에만 LLM이 설명할 수 있습니다. Board Chair는 (curated_id, variant_key) 쌍이 없는 행은 생성할 수 없으며, LLM이 schema를 지키지 않으면 deterministic template fallback이 발화하여 환각을 차단합니다. narrative_scrubber는 CancerBoardOpinion 전체 텍스트를 훑어 큐레이션된 약물 외 언급을 제거합니다.
Board에 전달할 변이를 AMP 2017 + ACMG/AMP 2015 기준으로 선별하는 결정적 필터. 수백 개의 원시 WGS 변이가 소수의 Board-presented 변이로 축약되며, 모든 선별 이유는 selection_reason 태그로 감사 가능합니다. v2.2에서 protein-impacting consequence gate로 intronic/UTR/upstream VUS를 제외하고, MMR/Lynch 유전자(MLH1/MSH2/MSH6/PMS2/EPCAM)의 VUS는 hotspot 여부와 무관하게 admit합니다. Top-k fallback 없음 — 조건 미충족 시 "보고 가능한 소견 없음"으로 렌더링합니다.
--clinical-note로 환자 이력을 Board 브리핑에 주입(리포트 HTML에는 포함되지 않아 재식별 차단). Knowledge Base는 과거 Board 판단을 kb.sqlite3에 기록하고 동일 변이 재분석 시 Prior Knowledge로 참조합니다. anti-anchoring 가드레일 포함.
orchestrate.py가 clinical_board를 dict(asdict)로 JSON에 기록하며, scripts/rerender_report.py가 캐시된 JSON에서 Ollama 재호출 없이 HTML 리포트를 재생성합니다. 템플릿 수정, 쇼케이스 리빌드, 표시 문구 변경 등을 즉시 반영할 수 있습니다.
모든 핵심 DB를 로컬에 구축하여 인터넷 없이 온프레미스 환경에서 완전한 분석이 가능합니다.
bash scripts/setup_databases.sh 로 자동 다운로드 및 빌드할 수 있습니다.
| 데이터베이스 | 형식 | 용도 | 규모 |
|---|---|---|---|
| ClinVar | SQLite | 변이 임상 유의성, expert panel 판정 | 4.4M+ 변이 (GRCh38) |
| gnomAD v4.1 | Tabix VCF | 인구집단 대립유전자 빈도 | 24 염색체 VCF.bgz + .tbi |
| CIViC | SQLite | 암 변이 임상 근거, 치료 예측 | 958 유전자, 4,812 evidence |
| HPO | SQLite | 유전자-표현형 연관 | 329K+ 연관 관계 |
| ClinGen | SQLite | 유전자-질환 유효성 평가 | Definitive ~ Refuted |
| Orphanet | SQLite | 희귀질환 유병률 | Product 9 XML 기반 |
| GeneReviews | SQLite | 유전자 문헌 참조 (NBK ID, PMID) | NCBI FTP 기반 |
| OMIM genemap2 | SQLite | 유전자-질환-유전패턴 매핑 | ~4,500 유전자 |
| OMIM mim2gene | SQLite | MIM 번호 ↔ 유전자 매핑 | mim2gene.txt 기반 |
| KOVA | SQLite | 한국인 대립유전자 빈도 + 동형접합자 수 | Korean Variant Archive v7 (43.3M variants) |
Missense 변이는 REVEL을 1차 도구로, splice 변이는 SpliceAI를 1차 도구로 사용합니다. CADD와 AlphaMissense는 보조 표시용이며, REVEL 부재 시 fallback으로 활용됩니다.
| Evidence Code | 도구 | Threshold | 적용 대상 |
|---|---|---|---|
| PP3_Strong | REVEL | ≥ 0.932 | Missense |
| PP3_Moderate | REVEL | ≥ 0.644 | Missense |
| PP3_Supporting | CADD + AlphaMissense | CADD ≥ 25 + AM pathogenic | Missense (REVEL 부재 시) |
| PP3_Strong | SpliceAI | max Δ ≥ 0.5 | Splice variant |
| PP3_Moderate | SpliceAI | max Δ ≥ 0.2 | Splice variant |
| BP4_Strong | REVEL | ≤ 0.016 | Missense |
| BP4_Moderate | REVEL | ≤ 0.183 | Missense |
| BP4_Supporting | SpliceAI | max Δ < 0.1 | Splice variant |
| 우선순위 | 조건 | Tier |
|---|---|---|
| 1 | Drug Response (PGx) | Tier I |
| 2 | ClinVar Pathogenic (Expert Panel) | Tier I |
| 3 | CIViC variant-level Evidence A + Pathogenic | Tier I |
| 4 | CIViC variant-level Evidence B | Tier II |
| 5 | CIViC C-D + ClinVar Pathogenic/LP | Tier II |
| 6 | OncoKB Level 1-2 + Pathogenic | Tier I |
| 7 | Cancer hotspot | Tier II |
| 8 | Cancer gene VUS | Tier III |
| 9 | Risk Factor / 비암 유전자 Pathogenic / 기타 | Tier IV |
전략 A(CIViC 우선), B(OncoKB+CIViC 병합, 기본값), C(OncoKB 단독) 중 선택 가능. config.yaml에서 설정.
| 구분 | 기술 |
|---|---|
| 언어 | Python ≥ 3.10 |
| VCF 파싱 | 텍스트 기반 파서 + VEP CSQ/SnpEff ANN 지원 |
| gnomAD 조회 | pysam TabixFile (VCF.bgz 직접 쿼리) |
| 로컬 DB | SQLite (thread-safe, 멱등 빌드) |
| AI Clinical Board | Ollama + Google MedGemma 27B (로컬 LLM) |
| 리포트 엔진 | Jinja2 (HTML) + WeasyPrint (PDF) |
| 병렬 처리 | ThreadPoolExecutor (DB 쿼리) + ProcessPoolExecutor (리포트) |
| 설정 | YAML + 스키마 검증 (로드 시점) |
| 테스트 | pytest (899개, CI 녹색) |
| 배포 | Docker + docker-compose / CLI 직접 실행 |