跳转至

分析层模块

services/analysis/omics/ 包含各组学数据分析功能。


模块列表

模块 文件 功能 状态
微生物组 microbiome.py 肠道菌群分析、疾病关联
微生物功能 microbiome_function.py 通路预测、功能分析
基因组学 genomics.py SNP/CNV 分析、解读
代谢组学 metabolomics.py 代谢物分析、通路富集
蛋白组学 proteomics.py 蛋白表达分析
心血管 cardiovascular.py 心血管风险评估
转录组学 transcriptomics.py 基因表达分析
表观组学 epigenomics.py DNA 甲基化分析
免疫组学 immunology.py 免疫功能评估
基因芯片 array.py SNP芯片分析

1. 微生物组分析 (microbiome.py)

功能

分析肠道菌群组成,评估健康状态和疾病风险。

流程

样本数据 → 序列处理 → 物种注释 → 多样性分析 → 疾病关联 → 食物推荐

核心函数

from services.analysis.omics.microbiome import (
    build_microbiome_interpretation,
    recommend_foods,
    classify_enterotype,
    get_disease_associations
)

# 构建解读报告
interpretation = build_microbiome_interpretation(
    taxonomy={"Bacteroides": 0.4, "Prevotella": 0.3, "Faecalibacterium": 0.2},
    diversity={"shannon": 3.5, "simpson": 0.85}
)

# 肠型分类
enterotype = classify_enterotype(gut_text=" Bacteroides dominant...")

# 食物推荐
foods = recommend_foods(
    microbiome_analysis=interpretation,
    limit=10
)

# 疾病关联
diseases = get_disease_associations("type_2_diabetes")

输出结构

{
    "enterotype": "Bacteroides",
    "diversity": {"shannon": 3.5, "simpson": 0.85},
    "dominant_species": ["Bacteroides vulgatus", "Bacteroides fragilis"],
    "deficient_species": ["Faecalibacterium prausnitzii"],
    "disease_risks": [
        {"disease": "type_2_diabetes", "risk": "medium", "confidence": 0.75},
        {"disease": "cardiovascular", "risk": "low", "confidence": 0.60}
    ],
    "food_recommendations": [
        {"food": "全谷物", "benefit": "增加Faecalibacterium"},
        {"food": "发酵食品", "benefit": "增加益生菌"}
    ]
}

2. 基因组学分析 (genomics.py)

功能

分析基因组变异,生成临床解读报告。

流程

VCF 文件 → 变异注释 → 功能解读 → 药物响应 → 疾病风险 → 报告生成

核心函数

from services.analysis.omics.genomics import (
    build_genomics_interpretation,
    parse_genomics_text,
    extract_abnormalities
)

# 构建基因组解读
interpretation = build_genomics_interpretation(
    vcf_data={"variants": [...], "coverage": 30},
    patient_info={"age": 45, "gender": "male"}
)

# 解析基因组文本
parsed = parse_genomics_text(text="检出 BRCA1 c.68_69delAG 致病突变...")

# 提取异常
abnormalities = extract_abnormalities(text="发现以下致病变异...")

3. 代谢组学分析 (metabolomics.py)

功能

分析代谢物谱,评估代谢健康状态。

流程

质谱数据 → 峰检测 → 化合物鉴定 → 通路分析 → 代谢评分 → 报告生成

核心函数

from services.analysis.omics.metabolomics import (
    build_metabolomics_interpretation,
    parse_metabolomics_text,
    extract_abnormalities
)

# 构建代谢组解读
interpretation = build_metabolomics_interpretation(
    metabolites={"glucose": 5.5, "insulin": 25.0, "hba1c": 6.2},
    pathway_data={"glycolysis": 0.8, "tca_cycle": 0.6}
)

4. 心血管分析 (cardiovascular.py)

功能

心血管健康风险评估和指标解读。

流程

体检数据 → 指标提取 → 风险计算 → 分层评估 → 建议生成

核心函数

from services.analysis.omics.cardiovascular import build_cardiovascular_interpretation

# 构建心血管报告
report = build_cardiovascular_interpretation(
    blood_pressure={"systolic": 130, "diastolic": 85},
    lipids={"ldl": 3.5, "hdl": 1.2, "triglycerides": 2.0},
    age=50,
    gender="male"
)

5. 其他组学模块

转录组学 (transcriptomics.py)

from services.analysis.omics.transcriptomics import parse_transcriptomics_text

# 解析转录组数据
parsed = parse_transcriptomics_text(
    text="基因表达谱分析报告...",
    patient_info="患者信息..."
)

表观组学 (epigenomics.py)

from services.analysis.omics.epigenomics import parse_epigenomics_text

parsed = parse_epigenomics_text(
    text="甲基化分析结果..."
)

免疫组学 (immunology.py)

from services.analysis.omics.immunology import parse_immunology_text

parsed = parse_immunology_text(
    text="免疫指标分析报告...",
    patient_info="年龄:45,性别:男"
)

蛋白组学 (proteomics.py)

from services.analysis.omics.proteomics import build_proteomics_interpretation

report = build_proteomics_interpretation(
    proteins={"albumin": 40, "globulin": 30}
)

基因芯片 (array.py)

from services.analysis.omics.array import run_array_pipeline, build_array_interpretation

# 运行芯片分析
qc = run_array_pipeline(vcf_path="data/sample.vcf", sample_id="S001")

# 构建解读
interpretation = build_array_interpretation(
    qc=qc,
    high_risk=["BRCA1"],
    drug_resp=["CYP2C19"],
    disease_risks=["type_2_diabetes"]
)

通用分析流程

各组学模块遵循统一的分析流程:

原始数据 → 数据清洗 → 特征提取 → 统计检验 → 解读生成 → 报告输出

异常提取

所有组学模块都支持从文本中提取异常指标:

def extract_abnormalities(text: str) -> List[Dict]:
    """从文本报告提取异常指标"""
    # 实现细节...

输入验证

def validate_sample_data(data: Dict) -> bool:
    """验证样本数据格式"""
    required_fields = ["sample_id", "data_type"]
    return all(field in data for field in required_fields)