BioBigData
KISTI 한국과학기술정보연구원
BioBigData.kr · 국가통합바이오빅데이터구축사업

BIKO GenomeBoard

한국인 맞춤형 유전체 변이 해석 파이프라인
ACMG/AMP 2015 AMP/ASCO/CAP 2017 ClinGen SVI 2022 한국인 3종 빈도 DB AI Clinical Board v2 Variant Selector (AMP/ACMG) Offline Ready

프로젝트 개요

BIKO GenomeBoard는 VEP/ANNOVAR 주석이 완료된 VCF 파일을 입력으로 받아, 국제 가이드라인(ACMG/AMP)에 기반한 변이 분류와 임상 해석을 수행하고 전문 임상 리포트(HTML/PDF)를 생성하는 온프레미스 파이프라인입니다. 한국인 인구집단 빈도 데이터(KOVA v7, 43.3M variants)를 통합하여 한국인 환자에 최적화된 변이 해석을 제공합니다.

분류는 결정적(Deterministic) — 진단 종합은 AI Board — 연구 참고용 문서

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] 태그가 붙습니다.

이 리포트는 임상의가 참고할 수 있는 연구 자료이며, 임상적 의사결정 도구가 아닙니다. 모든 해석은 자격을 갖춘 임상의의 검토를 거쳐야 합니다.

2
분석 모드 (암 / 희귀질환)
11+
로컬 데이터베이스
100%
오프라인 분석 지원
4
In Silico 예측 도구
12
약물유전체 유전자
899
Pytest 테스트

파이프라인 데이터 흐름

1
VCF 파싱
VEP/SnpEff 주석
SNV + Indel
2
DB 조회
ClinVar, gnomAD
KOVA v7
3
빈도 비교
5-tier 한국인
BA1/BS1/PM2
6
리포트 생성
HTML / PDF
Jinja2 + WeasyPrint
5
ACMG 분류
결정적 규칙 엔진
ClinVar Override
4
Evidence 수집
In Silico PP3/BP4
PVS1, PM1, PM4...

추가 입력: AnnotSV TSV (CNV/SV) · InterVar TSV (ACMG evidence) · BED 파일 (TMB 패널 크기)

분석 모드

Cancer (체세포 변이)

FoundationOne CDx 스타일 소체 변이 리포트

  • AMP/ASCO/CAP 2017 — Tier I~IV 분류
  • CIViC variant-level evidence 매칭
  • TMB (Tumor Mutational Burden) — mut/Mb
  • OncoKB cancer gene + level 정보
  • Cancer hotspot 자동 감지
  • VUS 자동 필터링 (Tier I-II만 detail)
  • 치료 전략 + PMID 참조문헌

Rare Disease (생식세포 변이)

HPO 기반 희귀질환 후보유전자 분석 리포트

  • ACMG/AMP 2015 — 5단계 분류 (P/LP/VUS/LB/B)
  • HPO 표현형 매칭 + 후보유전자 랭킹
  • OMIM 유전자-질환 매핑 + 유전패턴 (AD/AR/XL)
  • ClinGen 유전자-질환 유효성 평가
  • Orphanet 유병률 데이터
  • GeneReviews 문헌 참조 (NBK ID, PMID)
  • ClinVar expert panel override

핵심 기능 상세

🧬

ACMG/AMP 2015 변이 분류

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
🎯

AMP/ASCO/CAP 2017 Tiering

소체 변이 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.

Cancer
📊

In Silico Predictions

REVEL, CADD, AlphaMissense, SpliceAI — VEP CSQ 필드에서 자동 파싱. ClinGen SVI 2022 권고 기준으로 PP3/BP4 evidence 생성. Missense는 REVEL 우선, splice variant는 SpliceAI 우선.

Cancer + Rare Disease
🇰🇷

한국인 인구집단 빈도

KOVA v7(43.3M Korean variants)와 gnomAD EAS/ALL 비교. BA1/BS1/PM2 판정과 Korean enrichment ratio(kova/gnomad_eas)를 자동 계산.

Cancer + Rare Disease
🧱

CNV/SV 구조변이 분석

AnnotSV 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 Disease
📈

TMB (Tumor Mutational Burden)

Nonsynonymous coding variants / panel Mb. FDA FoundationOne CDx 방법론 기반. High(≥10) / Intermediate(6~10) / Low(<6) 자동 분류. BED 파일 또는 수동 패널 크기 입력.

Cancer
🔬

ACMG Evidence 자동 수집

VEP 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 Disease
💊

약물유전체학 (PGx)

CYP2D6, CYP2C19, CYP2C9, HLA-B, HLA-A 등 12개 유전자 + APOE 위험인자. CPIC 가이드라인 기반 한국인/서양인 유병률 비교. Korean enrichment flag 자동 산출.

Cancer + Rare Disease
🔍

HPO 표현형 매칭

HPO (Human Phenotype Ontology) 용어 → 연관 유전자 목록 자동 해석. HPO score = 환자 표현형 중 해당 유전자에 연관된 개수. 오프라인 SQLite DB (329K+ 연관 관계) + API fallback.

Rare Disease
📖

Gene Knowledge (유전자 지식)

6개 공인 출처 우선순위 체인: CPIC(PGx) → CIViC(암) → NCBI Gene(일반) → minimal. Orphanet 유병률, GeneReviews 문헌, OMIM MIM 번호 자동 통합.

Cancer + Rare Disease
📄

InterVar ACMG 통합

InterVar 출력 TSV를 선택적으로 입력하여 추가 ACMG evidence code 수집. 자체 수집 evidence와 중복 제거. InterVar 없이도 자체 evidence collector로 독립 분류 가능.

Cancer + Rare Disease
🧠

AI Clinical Board v2.2

Google MedGemma 27B 기반 로컬 다전문가 시스템. 모드별 4인 전문의 + Board Chair 구성, Grounded Prompting으로 ClinVar/OncoKB/CIViC 근거를 주입받아 자유 추론 대신 근거 정리를 수행합니다. 결정적 분류 엔진은 절대 변경하지 않고, 모든 출력에 AI-Generated 태그가 붙습니다.

Cancer + Rare Disease Ollama (온프레미스)
💊

Curate-then-Narrate (v2.2 A1/A2)

치료 권고는 OncoKB + CIViC에서 결정적으로 큐레이션된 후에만 LLM이 설명할 수 있습니다. Board Chair는 (curated_id, variant_key) 쌍이 없는 행은 생성할 수 없으며, LLM이 schema를 지키지 않으면 deterministic template fallback이 발화하여 환각을 차단합니다. narrative_scrubber는 CancerBoardOpinion 전체 텍스트를 훑어 큐레이션된 약물 외 언급을 제거합니다.

Cancer
🎯

Variant Selector (v2.2 B1/B2)

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 없음 — 조건 미충족 시 "보고 가능한 소견 없음"으로 렌더링합니다.

Cancer + Rare Disease
📝

임상 노트 + Knowledge Base

--clinical-note로 환자 이력을 Board 브리핑에 주입(리포트 HTML에는 포함되지 않아 재식별 차단). Knowledge Base는 과거 Board 판단을 kb.sqlite3에 기록하고 동일 변이 재분석 시 Prior Knowledge로 참조합니다. anti-anchoring 가드레일 포함.

Cancer + Rare Disease
🔄

리포트 재생성 도구

orchestrate.pyclinical_board를 dict(asdict)로 JSON에 기록하며, scripts/rerender_report.py가 캐시된 JSON에서 Ollama 재호출 없이 HTML 리포트를 재생성합니다. 템플릿 수정, 쇼케이스 리빌드, 표시 문구 변경 등을 즉시 반영할 수 있습니다.

Cancer + Rare Disease

로컬 데이터베이스

모든 핵심 DB를 로컬에 구축하여 인터넷 없이 온프레미스 환경에서 완전한 분석이 가능합니다. bash scripts/setup_databases.sh 로 자동 다운로드 및 빌드할 수 있습니다.

데이터베이스형식용도규모
ClinVarSQLite변이 임상 유의성, expert panel 판정4.4M+ 변이 (GRCh38)
gnomAD v4.1Tabix VCF인구집단 대립유전자 빈도24 염색체 VCF.bgz + .tbi
CIViCSQLite암 변이 임상 근거, 치료 예측958 유전자, 4,812 evidence
HPOSQLite유전자-표현형 연관329K+ 연관 관계
ClinGenSQLite유전자-질환 유효성 평가Definitive ~ Refuted
OrphanetSQLite희귀질환 유병률Product 9 XML 기반
GeneReviewsSQLite유전자 문헌 참조 (NBK ID, PMID)NCBI FTP 기반
OMIM genemap2SQLite유전자-질환-유전패턴 매핑~4,500 유전자
OMIM mim2geneSQLiteMIM 번호 ↔ 유전자 매핑mim2gene.txt 기반
KOVASQLite한국인 대립유전자 빈도 + 동형접합자 수Korean Variant Archive v7 (43.3M variants)

In Silico Prediction 상세

ClinGen SVI 2022 권고 기반 PP3/BP4 Evidence 생성

Missense 변이는 REVEL을 1차 도구로, splice 변이는 SpliceAI를 1차 도구로 사용합니다. CADD와 AlphaMissense는 보조 표시용이며, REVEL 부재 시 fallback으로 활용됩니다.

Evidence Code도구Threshold적용 대상
PP3_StrongREVEL≥ 0.932Missense
PP3_ModerateREVEL≥ 0.644Missense
PP3_SupportingCADD + AlphaMissenseCADD ≥ 25 + AM pathogenicMissense (REVEL 부재 시)
PP3_StrongSpliceAImax Δ ≥ 0.5Splice variant
PP3_ModerateSpliceAImax Δ ≥ 0.2Splice variant
BP4_StrongREVEL≤ 0.016Missense
BP4_ModerateREVEL≤ 0.183Missense
BP4_SupportingSpliceAImax Δ < 0.1Splice variant

AMP/ASCO/CAP 2017 Tiering 전략

우선순위조건Tier
1Drug Response (PGx)Tier I
2ClinVar Pathogenic (Expert Panel)Tier I
3CIViC variant-level Evidence A + PathogenicTier I
4CIViC variant-level Evidence BTier II
5CIViC C-D + ClinVar Pathogenic/LPTier II
6OncoKB Level 1-2 + PathogenicTier I
7Cancer hotspotTier II
8Cancer gene VUSTier III
9Risk 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 직접 쿼리)
로컬 DBSQLite (thread-safe, 멱등 빌드)
AI Clinical BoardOllama + Google MedGemma 27B (로컬 LLM)
리포트 엔진Jinja2 (HTML) + WeasyPrint (PDF)
병렬 처리ThreadPoolExecutor (DB 쿼리) + ProcessPoolExecutor (리포트)
설정YAML + 스키마 검증 (로드 시점)
테스트pytest (899개, CI 녹색)
배포Docker + docker-compose / CLI 직접 실행

CLI 사용법

# 데이터베이스 자동 셋업
bash scripts/setup_databases.sh

# 암 모드 (기본)
python scripts/orchestrate.py sample.vcf -o report.html --skip-api

# 희귀질환 모드 + HPO 표현형
python scripts/orchestrate.py patient.vcf --mode rare-disease \
  --hpo HP:0001250,HP:0001263 -o report.html

# 구조변이 + InterVar 통합
python scripts/orchestrate.py sample.vcf -o report.html \
  --sv annotsv_output.tsv --intervar intervar_output.tsv

# AI Clinical Board 진단 종합 (Ollama 필요)
python scripts/orchestrate.py sample.vcf -o report.html \
  --clinical-board --board-lang en

# 배치 처리 (8 workers)
python scripts/orchestrate.py --batch vcf_dir/ --output-dir reports/ --workers 8

모듈 구조

scripts/
├── orchestrate.py           — CLI 진입점 + run_pipeline
├── pipeline/
│   ├── query.py             — DB 쿼리 오케스트레이션
│   ├── classify.py          — ACMG 분류 + variant 조립
│   └── batch.py             — 배치 처리 (변이 중복제거)
├── clinical_board/          — AI Clinical Board (Ollama LLM)
│   └── agents/             — 4 전문의 + Board Chair
├── intake/                  — VCF, AnnotSV, InterVar 파싱
├── classification/          — ACMG 엔진, In Silico, Evidence
├── somatic/                — AMP Tiering, TMB
├── clinical/               — ClinVar, OncoKB, HPO, OMIM, ClinGen
├── korean_pop/             — KOVA v7, gnomAD
├── db/                      — 10 build + 9 query 모듈
├── pharma/                 — Korean PGx, PharmGKB
└── counselor/              — Jinja2 HTML + WeasyPrint PDF

templates/
├── cancer/report.html       — 암 리포트 (AMP Tier I-IV)
├── rare-disease/report.html— 희귀질환 리포트
└── shared/sv_section.html  — CNV/SV 공유 섹션