Initial commit

This commit is contained in:
2025-11-28 11:52:04 +08:00
commit f74dc351f7
51 changed files with 2402 additions and 0 deletions

View File

@@ -0,0 +1,356 @@
# 個人基因風險與用藥交互作用決策支援系統 系統規格書
- 版本v0.1-draft
- 作者Gbanyan + 助理規劃
- 狀態:草案,預期隨實作迭代
- 目的:提供給 LLM如 Claude、Codex 等)與開發者閱讀,作為系統設計與實作的基礎規格。
---
## 0. 系統目標與範圍
### 0.1 目標
建立一套「個人化、基因驅動」的決策支援系統,核心功能:
1. **從個人與父母的外顯子定序資料BAM出發**,產生可查詢的變異資料庫。
2. **針對特定疾病、症狀或表型**,自動查詢相關基因與已知致病變異,並在個人資料中搜尋對應變異。
3. 依據 **ACMG/AMP 等準則** 與公開資料庫,給出 **機器輔助、具人工介入點的變異詮釋**
4. 進一步整合:
- 基因藥物學Pharmacogenomics, PGx
-藥交互作用DDI
- 保健食品、中藥等成分的潛在交互作用與風險
5. 提供一個自然語言問答介面,使用者可直接問:
- 「我有沒有 XXX 的遺傳風險?」
- 「以我現在吃的藥和保健食品,有沒有需要注意的交互作用?」
> 系統定位為:**個人決策支援工具 / 研究工具**,而非正式醫療診斷系統。
### 0.2 核心設計哲學
- **分階段發展**:先穩固「基因本體」與變異詮釋,再往 PGx 與交互作用擴充。
- **明確的人機分工**:對每個模組標記 `Auto / Auto+Review / Human-only`
- **可追蹤、可回溯**:每一個結論都可追蹤到所用規則、資料庫版本、人工 override。
---
## 1. 發展階段與整體架構
### 1.1 發展階段總覽
| 階段 | 名稱 | 核心產出 | 主要對象 |
|------|------|----------|----------|
| Phase 1 | 基因本體與變異詮釋基礎 | 個人+trio VCF、註解與疾病/基因查詢 | 單基因疾病風險 |
| Phase 2 | 基因藥物學與 DDI | 基因–藥物對應、藥–藥交互作用分析 | 精準用藥建議 |
| Phase 3 | 保健食品與中藥交互作用 | 成分標準化與交互作用風險層級 | 整體用藥+補充品安全網 |
| Phase 4 | NLP/LLM 問答介面 | 自然語言問答、報告生成 | 一般使用者 / 臨床對話 |
### 1.2 高階架構圖Mermaid
```mermaid
flowchart TD
subgraph P1[Phase 1: 基因本體]
A1[BAM (本人+父母)] --> A2[Variant Calling Pipeline]
A2 --> A3[Joint VCF (Trio)]
A3 --> A4[Variant Annotation (ClinVar, gnomAD, VEP...)]
A4 --> A5[Genomic DB / Query API]
end
subgraph P2[Phase 2: PGx & DDI]
B1[藥物清單] --> B2[PGx Engine]
A5 --> B2
B1 --> B3[DDI Engine]
end
subgraph P3[Phase 3: 補充品 & 中藥]
C1[保健食品/中藥清單] --> C2[成分標準化]
C2 --> C3[成分交互作用引擎]
B1 --> C3
A5 --> C3
end
subgraph P4[Phase 4: 問答與報告]
D1[前端 UI / CLI / API Client] --> D2[LLM Orchestrator]
D2 -->|疾病/症狀詢問| A5
D2 -->|用藥/成分詢問| B2
D2 --> B3
D2 --> C3
A5 --> D3[報告產生器]
B2 --> D3
B3 --> D3
C3 --> D3
end
```
---
## 2. 通用設計:人機分工標記
所有模組需標記自動化等級:
- `Auto`可完全自動執行的步驟variant calling、基本註解
- `Auto+Review`系統先產生建議需人工複核或有條件接受ACMG 部分 evidence scoring
- `Human-only`:最終醫療判斷/用語/管理建議,必須由人決策(例:最終 Pathogenic 分類、臨床處置建議)。
每次分析需生成一份 **machine-readable log**,紀錄:
- 使用的模組與版本
- 每一步的自動化等級
- 哪些地方有人工 override人員、時間、理由
---
## 3. Phase 1基因本體與變異詮釋基礎
### 3.1 功能需求
1. **輸入**
- 本人與雙親外顯子定序 BAM 檔。
2. **輸出**
- 高品質 joint VCF含 trio
- 每個變異的註解資訊:
- 基因、轉錄本、蛋白改變
- 族群頻率gnomAD 等)
- ClinVar 註解
- 功能預測SIFT/PolyPhen/CADD 等)
- 對特定疾病/基因清單的變異過濾結果。
3. **對外服務**
- 以 API / 函式介面提供:
- 給定基因列表 → 回傳該個體在這些基因中的變異列表
- 支援疾病名稱/HPO → 基因 → 變異的查詢流程(初期可分步呼叫)
### 3.2 模組設計
#### 3.2.1 Variant Calling Pipeline
- **輸入**BAM本人 + 父母)
- **輸出**:個別 gVCF → joint VCF
- **工具候選**
- GATKHaplotypeCaller + GenotypeGVCFs
- 或 DeepVariant + joint genotyper
- **自動化等級**`Auto`
- **需求**
- 基本 QCcoverage、duplicate rate、on-target rate
- 支援版本標記(如 reference genome 版本)
#### 3.2.2 Annotation Pipeline
- **輸入**joint VCF
- **輸出**annotated VCF / 變異表
- **工具候選**
- VEP、ANNOVAR 或類似工具
- **資料庫**
- ClinVar
- gnomAD
- 基因功能與轉錄本資料庫
- **自動化等級**`Auto`
#### 3.2.3 Genomic DB / Query API
- **目的**提供高效查詢作為後續模組疾病風險、PGx 等)的基底。
- **形式**
- 選項 A基於 VCF + tabix以封裝函式操作
- 選項 B匯入 SQLite / PostgreSQL / 專用 genomic DB
- **關鍵查詢**
- `get_variants_by_gene(individual_id, gene_list, filters)`
- `get_variants_by_region(individual_id, chr, start, end, filters)`
- **自動化等級**`Auto`
#### 3.2.4 疾病/表型 → 基因 → 變異流程
- 初期可拆成三步:
1. 使用外部知識庫或手動 panel疾病/表型 → 基因清單
2. 透過 Genomic DB 查詢個人變異
3. 以簡單規則頻率、ClinVar 標註)做初步排序
- **自動化等級**`Auto+Review`
### 3.3 ACMG 規則實作(初版)
- **範圍**:僅實作部分機器可自動判定之 evidence如 PVS1、PM2、BA1、BS1 等)。
- **輸出**
- 每個變異的 evidence tag 列表與建議分級(例如:`suggested_class = "VUS"`
- **人工介入點**
- 變異最終分類Pathogenic / Likely pathogenic / VUS / Likely benign / Benign`Human-only`
- 規則閾值(如頻率 cutoff以 config 檔管理 → `Auto+Review`
---
## 4. Phase 2基因藥物學PGx與藥藥交互作用DDI
### 4.1 功能需求
1. 接收使用者目前用藥清單(處方藥、成藥)。
2. 透過基因資料,判定與 PGx 相關的 genotype例如 CYP2D6, CYP2C9, HLA 等)。
3. 根據 CPIC / DPWG 等指南,給出:
- 適應症相關風險(如 HLA-B*58:01 與 allopurinol
- 劑量調整建議 / 藥物替代建議(僅 decision-support 層級)
4. 計算基礎藥藥交互作用DDI例如
- CYP 抑制 / 誘導疊加
- QT prolongation 疊加
- 出血風險疊加
### 4.2 模組設計
#### 4.2.1 用藥資料標準化
- 使用 ATC / RxNorm / 自訂 ID。
- **自動化等級**`Auto`
#### 4.2.2 PGx Engine
- **輸入**個人變異Phase 1 DB、藥物清單
- **輸出**:每個藥物的 PGx 評估genotype → phenotype → 建議)
- **資料庫**
- CPIC guidelines
- PharmGKB 關聯資料
- **自動化等級**
- genotype → phenotype`Auto`
- phenotype → 臨床建議:`Auto+Review`
#### 4.2.3 DDI Engine
- **輸入**:藥物清單
- **輸出**:已知 DDI 清單與嚴重程度分級
- **資料來源**:公開或商用 DDI 資料庫(視可用性)
- **自動化等級**`Auto`
---
## 5. Phase 3保健食品與中藥交互作用模組
### 5.1 功能需求
1. 接收使用者的保健食品與中藥使用資料。
2. 將名稱解析為:
- 標準化有效成分(如 EPA/DHA mg、Vit D IU、銀杏葉萃取物 mg 等)
- 中藥材名稱(如 黃耆、當歸、川芎…)
3. 評估:
- 成分與藥物、基因的交互作用風險
- 成分間的加乘作用如抗凝、CNS 抑制等)
4. 按證據等級給出:
- 高優先級警示(有較強臨床證據)
- 一般提醒(動物實驗 / case report 等)
- 資料不足,僅能提醒不確定性
### 5.2 模組設計
#### 5.2.1 成分標準化引擎
- **輸入**:使用者輸入的品名 / 處方
- **輸出**
- 標準化成分列表
- 估計劑量範圍(若無精確資料)
- **資料**
- 保健食品常用成分資料表
- 中藥方與藥材對應表
- **自動化等級**`Auto+Review`
#### 5.2.2 成分交互作用引擎
- **輸入**:成分列表、藥物清單、基因資料
- **輸出**:交互作用列表與風險層級
- **邏輯**
- 成分對 CYP / P-gp / OATP 等的影響
- 成分對凝血、血壓、中樞神經等系統的影響
- **自動化等級**
- 規則推論:`Auto`
- 最終臨床建議表述:`Human-only`
---
## 6. Phase 4NLP/LLM 問答介面與報告生成
### 6.1 功能需求
1. 支援使用者以自然語言提問:
- 疾病/症狀相關風險
- 用藥安全性
- 保健食品、中藥併用風險
2. LLM 負責:
- 問題解析 → 結構化查詢疾病、HPO、藥物、成分等
- 協調呼叫底層 APIPhase 13
- 整合結果並生成報告草稿
3. 報告形式:
- 機器可讀 JSON便於後處理
- 人類可讀 Markdown / PDF 報告
### 6.2 Orchestration 設計
- 可採用「LLM + Tool/Function Calling」模式
- 工具包括:
- `query_variants_by_gene`
- `query_disease_gene_panel`
- `run_pgx_analysis`
- `run_ddi_analysis`
- `run_supplement_herb_interaction`
- LLM 主要負責:
- 意圖辨識與拆解
- 工具呼叫順序規劃
- 結果解釋與用語調整(需符合安全與保守原則)
- **自動化等級**
- 工具呼叫:`Auto`
- 臨床敏感結論:`Auto+Review` / `Human-only`(視場景而定)
---
## 7. 安全性、隱私與版本管理
### 7.1 資料安全與隱私
- 所有基因資料、用藥清單、報告:
- 儲存於本地或受控環境
- 若需與外部服務(如雲端 LLM互動
- 做脫敏處理(移除個資)
- 或改用 local/私有 LLM
### 7.2 版本管理
- 對以下物件進行版本控制:
- 參考基因組版本
- variant calling pipeline 版本
- 資料庫版本ClinVar、gnomAD 等)
- ACMG 規則 config 版本
- gene panel / PGx 規則版本
- 每份分析報告需記錄所用版本,以利追蹤與重跑。
### 7.3 人工介入紀錄
- 每次人工 override 或審核需紀錄:
- 變異 ID / 分析項目
- 原自動建議
- 人工調整結果
- 理由與參考文獻(如有)
- 審核者與時間
---
## 8. 未來擴充方向Optional
- 整合 polygenic risk scorePRS模組
- 整合 longitudinal data實驗室數據、症狀日誌做風險動態追蹤
- 為特定疾病領域建立更深的 expert-curated knowledge base
- 與可穿戴裝置/其他健康資料源整合
---
## 9. 第一階段實作建議路線Actionable TODO
1. **規劃 Phase 1 的技術選型**
- 選擇 variant caller如 GATK與 reference genome 版本
- 選擇 annotation 工具(如 VEP 或 ANNOVAR
2. **建立基本 pipeline**
- BAM → gVCF → joint VCFtrio
- 加上基本 QC 報表
3. **建置簡單的 Genomic Query 介面**
- 先以 CLI/Notebook 函式為主(例如 Python 函式庫)
4. **選一個你最關心的疾病領域**
- 建立第一個 gene panel例如視覺/聽力相關)
- 實作 panel-based 查詢與變異列表輸出
5. **撰寫第一版報告模板**
- 輸入:疾病名稱 + gene panel + 查詢結果
- 輸出:簡易 Markdown 報告(含變異表 + 限制說明)
6. **逐步加入 ACMG 自動 evidence 標記與人工 review 流程**
這個規格書預期會在實作過程中持續更新,可視此為 v0.1 的起點版本。