FastQC 报告解读器
分析 FastQC 质量控制报告,评估 NGS 数据质量并提供可操作性建议。
快速检查
python -m py_compile scripts/main.py
python scripts/main.py --help
适用场景
- 分析 NGS 测序数据的 FastQC 质量报告
- 识别测序数据质量问题
- 故障排查测序问题
- RNA-seq、DNA-seq、ChIP-seq 数据质量评估
核心功能
1. 质量指标分析
关键指标阈值:
| 指标 | 优秀 (Good) | 警告 (Warning) | 失败 (Fail) | |------|-------------|----------------|-------------| | Per base sequence quality | Q > 28 | Q 20-28 | Q < 20 | | Per sequence quality scores | Peak at Q30 | Peak Q20-30 | Peak < Q20 | | Per base N content | < 5% | 5-20% | > 20% | | Sequence duplication | < 20% | 20-50% | > 50% | | Adapter content | < 5% | 5-10% | > 10% |
2. 问题诊断
常见问题及解决方案:
Read 末端低质量
- 原因:相位效应、试剂耗尽
- 解决方案:修剪最后 10-20 个碱基
Adapter 污染
- 原因:Adapter 去除不完全
- 解决方案:使用更严格参数重新运行 cutadapt/Trimmomatic
高重复率
- 原因:PCR 过度扩增、低起始量
- 解决方案:使用去重工具;优化文库制备
Per Base Sequence Content 偏差
- 原因:Adapter dimers、非随机引物
- 解决方案:检查 adapter 污染;随机化引物
3. 批量分析
支持批量处理多个 FastQC 报告,生成汇总 CSV 文件。
4. 应用特定阈值
不同应用的质量要求:
- RNA-seq:可接受高达 40% 的重复率(转录本丰度差异)
- DNA-seq:严格质量要求(变异检测需要)
- ChIP-seq:中等质量,关注富集指标
使用方法
# 分析单个报告
python scripts/main.py --report sample_fastqc.json
# 演示模式
python scripts/main.py --demo
# 批量分析(计划功能)
# python scripts/main.py --batch "*fastqc.html" --output report.pdf
# 指定应用类型(计划功能)
# python scripts/main.py --report fastqc.json --application rna_seq
输出解读
PASS (绿色 ✓):可以继续分析
WARNING (黄色 ⚠):需要审查但通常可接受
FAIL (红色 ✗):下游分析前需要处理
示例输出
============================================================
FASTQC REPORT INTERPRETATION
============================================================
✓ Per Base Quality
Status: GOOD
High quality reads
Recommendations:
• No specific recommendations
⚠ Gc Content
Status: WARNING
Slightly abnormal GC
Recommendations:
• Check GC bias in downstream analysis
✗ Duplication Levels
Status: FAIL
High duplication - check PCR cycles
Recommendations:
• Reduce PCR cycles in library prep
• Consider starting with more input material
============================================================
质量模块说明
1. Per Base Sequence Quality
每个位置的碱基质量分数
- Good: Q > 28,高质量测序
- Warning: Q 20-28,可接受质量
- Fail: Q < 20,需要修剪
2. Per Sequence Quality Scores
整体序列质量分数分布
- Good: 峰值在 Q30,优秀整体质量
- Warning: 峰值 Q20-30,良好质量
- Fail: 峰值 < Q20,检查系统性问题
3. GC Content
GC 含量分布
- Good: 偏差 < 5%,正常 GC 分布
- Warning: 偏差 5-10%,轻微异常
- Fail: 偏差 > 15%,可能污染或偏差
4. Adapter Content
Adapter 序列残留
- Good: < 5%,最小 adapter 污染
- Warning: 5-10%,存在部分 adapter
- Fail: > 10%,显著污染,需要修剪
5. Duplication Levels
序列重复水平
- Good: < 20%,低重复,文库复杂度好
- Warning: 20-50%,中等重复
- Fail: > 50%,高重复,检查 PCR 循环数
故障排查指南
平台特异性问题
Illumina
- 质量在 read 末端下降是正常现象
- 前几个碱基的序列偏差可能源自随机引物
PacBio / Oxford Nanopore
- 整体质量分数较低是正常的
- 关注 read 长度分布而非质量分数
文库制备问题诊断
高 adapter 含量
- 检查 adapter 去除步骤
- 验证 insert size 是否足够
高 GC 偏差
- PCR 扩增偏好性
- 可能的物种污染
高重复率
- 减少 PCR 循环数
- 增加起始 DNA/RNA 量
- 使用 UMI(Unique Molecular Identifiers)
下游分析影响评估
| 问题 | 对变异检测的影响 | 对表达定量的影响 | 对组装的影响 | |------|-----------------|----------------|-------------| | 低质量碱基 | 假阳性增加 | 定量偏差 | 组装碎片化 | | Adapter 污染 | 比对率下降 | 计数错误 | 嵌合 contigs | | 高重复率 | 覆盖度偏差 | 定量偏差 | 组装深度不均 | | GC 偏差 | 覆盖度不均 | 定量系统误差 | 区域缺失 |
推荐的处理流程
- 质量修剪:Trimmomatic、cutadapt、fastp
- Adapter 去除:cutadapt、Trim Galore
- 去重:Picard MarkDuplicates、samtools rmdup
- 质量过滤:PRINSEQ、FastQC 后过滤
风险评估
| 风险指标 | 评估 | 级别 | |---------|------|------| | 代码执行 | Python 脚本本地执行 | 中 | | 网络访问 | 无外部 API 调用 | 低 | | 文件系统访问 | 读取输入文件,写入输出文件 | 中 | | 指令篡改 | 标准提示指南 | 低 | | 数据暴露 | 输出文件保存至工作区 | 低 |
先决条件
无需安装额外 Python 包(仅使用标准库:argparse、json)。
生命周期状态
- 当前阶段:Draft
- 下次审查日期:2026-03-06
- 已知问题:批量分析和应用特定阈值功能待实现
- 计划改进:
- 支持直接解析 HTML 报告
- 批量分析功能
- 应用特定阈值
- PDF 报告生成
微信扫一扫