跳转至

生信面试 NGS 测序原理题

一句话概述:面试中 NGS 原理题涵盖测序平台原理、文件格式、质控标准、比对策略和变异检测流程,理解"光→碱基→序列→比对→变异"的完整链条是关键。


核心知识点速查表

概念白话解释
一代测序(Sanger)链终止法,金标准但通量低(一次1条序列)
二代测序(NGS)大规模并行测序(一次亿级reads)
三代测序长读长测序(PacBio/ONT,>10kb)
文库制备把DNA打断→加接头→扩增,准备测序
边合成边测序(SBS)Illumina的核心原理,每加一个碱基拍一张照
Phred质量值碱基测序质量,Q30=0.1%错误率
覆盖度(Coverage)基因组每个位置平均被测了多少次
PCR重复同一个DNA片段被PCR扩增后测了多次

一、测序平台原理(高频考点)

Illumina(二代,市场占有率>80%)

文库制备 → 桥式PCR(Bridge PCR) → 边合成边测序(SBS) → 信号检测

详细步骤:
1. DNA打断 → 200-500bp片段
2. 末端修复 + 加A尾 + 连接接头(adapter)
3. 片段固定到flowcell表面
4. 桥式PCR扩增 → 形成数百万个"簇"(cluster)
   每个簇 = 同一片段的~1000个拷贝(信号放大)
5. 边合成边测序(SBS):
   - 加入4种荧光标记的dNTP(可逆终止子)
   - 每次只掺入1个碱基
   - 拍照记录荧光颜色(哪个碱基)
   - 切掉荧光标记和终止基团
   - 重复上述步骤~150次 = 150bp read
6. 如果是双端测序(Paired-End):
   - 先从一端测150bp(Read 1)
   - 翻转后从另一端测150bp(Read 2)
   - 得到 PE150 数据(2×150bp)

PacBio(三代,长读长)

核心:单分子实时测序(SMRT)

1. DNA环化(加接头形成环状模板 SMRTbell)
2. 聚合酶固定在零模波导(ZMW)底部
3. 聚合酶合成新链时,掺入荧光dNTP
4. 实时记录荧光信号
5. 环状模板可以多次环绕测序(CCS模式提高准确率)

优势:
- 读长极长(平均15-20kb,最长>100kb)
- CCS模式准确率>99.9%(Q40+)
- 能检测碱基修饰(甲基化)
- 无GC偏好(无PCR扩增步骤)

劣势:
- 通量相对低,成本高
- 单次pass错误率~10-15%(CCS可纠正)

Oxford Nanopore(三代,纳米孔)

核心:蛋白纳米孔检测电流变化

1. DNA链穿过蛋白纳米孔
2. 不同碱基阻断电流的程度不同
3. 实时检测电流变化 → 推断碱基序列

优势:
- 读长最长(理论无上限,记录>4Mb)
- 设备便携(MinION只有U盘大小)
- 实时数据输出(可边测边分析)
- 能直接检测碱基修饰

劣势:
- 单次准确率~95-98%(持续提高中)
- 系统误差模式与Illumina不同(主要是同聚物)

二、文件格式(必考)

FASTQ格式

@SRR12345_1 1:N:0:ATCACG          ← 第1行:序列ID(@开头)
ATCGATCGATCGATCGATCG                ← 第2行:碱基序列
+                                    ← 第3行:分隔符(+)
FFFFFFFFFFF:FFFFF:FFF               ← 第4行:质量值(ASCII编码)

质量值说明(Phred+33编码):
字符 → ASCII码 - 33 = Phred质量值
'F' → 70 - 33 = 37 (Q37, 错误率0.02%)
'?' → 63 - 33 = 30 (Q30, 错误率0.1%)
'5' → 53 - 33 = 20 (Q20, 错误率1%)
'!' → 33 - 33 = 0  (Q0, 50%错误率)

Q = -10 × log10(P_error)
Q20 → P=0.01 → 99%准确
Q30 → P=0.001 → 99.9%准确
Q40 → P=0.0001 → 99.99%准确

SAM/BAM格式

SAM格式核心字段(11个必须字段):
QNAME  FLAG  RNAME  POS  MAPQ  CIGAR  RNEXT  PNEXT  TLEN  SEQ  QUAL

字段说明:
1. QNAME — Read名字
2. FLAG  — 标志位(比对信息编码)
   - 0x4 (4)   = 未比对上
   - 0x10 (16) = 反向互补比对
   - 0x40 (64) = Read1
   - 0x80 (128)= Read2
   - 0x100(256)= 次要比对
   - 0x400(1024)= PCR重复
3. RNAME — 参考序列名(如chr1)
4. POS   — 比对起始位置(1-based)
5. MAPQ  — 比对质量(0-60, 60最好)
6. CIGAR — 比对情况编码
   - 50M = 50个碱基匹配
   - 3I = 3个碱基插入
   - 2D = 2个碱基缺失
   - 5S = 5个碱基软裁剪
   例: 50M2I30M = 50bp匹配+2bp插入+30bp匹配
7-8. RNEXT/PNEXT — 配对read的位置信息
9. TLEN — 片段长度
10. SEQ — 碱基序列
11. QUAL — 碱基质量

BAM = SAM的二进制压缩版(小5-10倍)
CRAM = 比BAM更高压缩(参考基因组编码)

VCF格式

VCF格式(变异调用结果):
##fileformat=VCFv4.2                  ← 元数据行(##开头)
##INFO=<ID=DP,Number=1,Type=Integer>  ← 字段定义
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SAMPLE  ← 表头
chr1   100 .  A   T   50   PASS   DP=30  GT:AD  0/1:15,15  ← 数据行

关键字段:
- CHROM: 染色体
- POS: 位置(1-based)
- REF: 参考等位基因
- ALT: 变异等位基因
- QUAL: 变异质量
- FILTER: 过滤状态(PASS=通过)
- INFO: 附加信息(DP=深度等)
- GT: 基因型(0/0=纯合参考, 0/1=杂合, 1/1=纯合变异)
- AD: 等位基因深度(如15,15 = ref 15reads, alt 15reads)

BED格式(区间文件):
chr1  100  200  gene_name  score  strand
注意:BED是0-based半开区间 [100, 200)
VCF是1-based

三、质控标准(常考)

# ========== 质控工具和标准 ==========

# FastQC 质控报告解读
fastqc sample_R1.fastq.gz -o qc_results/  # 运行FastQC

# 关键指标和判断标准:
# 1. 碱基质量分布(Per base quality)
#    Q30以上 = 好(绿色区域)
#    Q20以下 = 差(红色区域)
#    Read末端质量下降是正常的

# 2. 序列质量分布(Per sequence quality)
#    峰值在Q30以上 = 好
#    双峰分布 = 可能有污染

# 3. GC含量分布(Per sequence GC content)
#    应该呈正态分布
#    多峰 = 可能有接头污染或其他物种污染

# 4. 序列长度分布(Sequence Length Distribution)
#    应该集中在标称长度(如150bp)

# 5. 接头含量(Adapter Content)
#    >5% = 需要去接头

# 6. 重复序列(Sequence Duplication Levels)
#    RNA-seq有较高重复率是正常的
#    WGS重复率高需要去重

# fastp — 一步完成质控+过滤+去接头
fastp \
    -i R1.fastq.gz \                       # Read1输入
    -I R2.fastq.gz \                       # Read2输入
    -o R1.clean.fq.gz \                    # Read1输出
    -O R2.clean.fq.gz \                    # Read2输出
    -q 20 \                                # 碱基质量阈值(Q20)
    -l 50 \                                # 最短read长度
    --detect_adapter_for_pe \              # 自动检测PE接头
    -w 8 \                                 # 线程数
    -j report.json \                       # JSON报告
    -h report.html                         # HTML报告

四、比对原理(高频考点)

BWA-MEM 比对流程:
1. 建索引:bwa index ref.fa
   → 构建 BWT + FM-index(约需参考基因组大小的内存)

2. 种子查找(Seeding):
   → 从read中提取短种子(~19bp)
   → 用FM-index在参考基因组中精确定位(O(m)时间)
   → 允许种子间有间隔(MEMs = Maximal Exact Matches)

3. 种子链接(Chaining):
   → 把在参考基因组上位置相近的种子链接起来
   → 形成候选比对区域

4. Smith-Waterman延伸(Extension):
   → 在候选区域做局部比对
   → 使用仿射gap罚分(开gap罚分 + 延伸gap罚分)
   → 输出CIGAR字符串记录比对细节

比对后处理:
5. 排序: samtools sort → 按坐标排序
6. 去重: picard MarkDuplicates → 标记PCR重复
7. 建索引: samtools index → 建立.bai索引
# 完整比对流程
bwa mem -t 8 -R '@RG\tID:sample1\tSM:sample1\tPL:ILLUMINA' \
    reference.fa R1.fq.gz R2.fq.gz \   # 参考基因组 + PE reads
    | samtools sort -@ 4 -o sorted.bam  # 排序

samtools index sorted.bam               # 建索引

# 去重
gatk MarkDuplicates \
    -I sorted.bam \
    -O dedup.bam \
    -M dedup_metrics.txt \
    --REMOVE_DUPLICATES false           # 标记但不删除

五、变异检测原理(核心考点)

GATK HaplotypeCaller 原理:
1. 活跃区域检测(Active Region Detection)
   → 扫描基因组,找到reads比对"不正常"的区域
   → 正常区域直接跳过(节省时间)

2. 局部重新组装(Local De Novo Assembly)
   → 在活跃区域构建de Bruijn图
   → 找到所有可能的单倍型(haplotype)

3. Pair-HMM
   → 计算每条read来自每种单倍型的概率
   → 使用配对隐马尔可夫模型(Pair-HMM)

4. 基因型推断(Genotyping)
   → 贝叶斯方法计算每种基因型的后验概率
   → 输出基因型(GT)和基因型质量(GQ)

体细胞变异(Mutect2)与胚系变异(HC)的区别:
- HC假设基因型是0/0, 0/1, 1/1之一(二倍体模型)
- Mutect2不假设二倍体,允许任意VAF(肿瘤是异质的)
- Mutect2需要配对的正常样本来过滤胚系变异

六、测序深度与覆盖度

# ========== 深度与覆盖度计算 ==========

# 理论覆盖度 = (reads数 × read长度) / 基因组大小
# 例:1亿条150bp reads, 人类基因组3Gb
coverage = (100_000_000 * 150) / 3_000_000_000   # = 5X

# 不同应用的推荐深度:
recommended_depth = {
    "WGS 胚系变异": "30-50X",          # 标准WGS
    "WGS 体细胞变异": "60-100X(肿瘤) + 30X(正常)",
    "WES": "100-200X",                  # 外显子组
    "RNA-seq": "20-50M reads/样本",     # 按reads数算不按X
    "ChIP-seq": "10-30M reads",
    "ATAC-seq": "50M reads",
    "ctDNA液体活检": ">10000X(原始)",
    "16S扩增子": "10000-100000 reads/样本",
    "宏基因组WGS": "10-50M PE reads/样本",
}

# 覆盖度影响变异检测的灵敏度:
# 30X → 检测>20% VAF的变异(杂合突变)
# 100X → 检测>5% VAF的变异(亚克隆)
# 1000X → 检测>0.5% VAF的变异(ctDNA)
# 10000X → 检测>0.1% VAF的变异(UMI ctDNA)

七、常见报错与解决

问题原因解决方法
比对率很低(<70%)物种错误或污染检查参考基因组是否正确
PCR重复率很高(>30%)文库复杂度低增加DNA量或改进文库制备
插入片段大小异常文库制备问题检查picard InsertSizeMetrics
MAPQ全是0多比对位置或参考不对检查是否用了正确参考基因组
变异位点在所有样本中都有参考基因组错误或系统性错误检查参考版本,做Panel of Normals

八、面试高频问题

Q1:Illumina测序的错误类型?

主要是替换错误(substitution),特别是读长末端质量下降。错误率约0.1-1%/碱基。GGC等特定序列容易出错。Phasing/pre-phasing(簇中分子不同步)是主要错误来源。相比之下,PacBio/ONT主要是插入缺失错误,特别是在同聚物区域。

Q2:PE150和SE150的区别?

PE(Paired-End)150:从片段两端各测150bp,得到两个文件(R1, R2)。SE(Single-End)150:只从一端测150bp。PE的优势:(1)有效信息量翻倍;(2)能检测结构变异和插入缺失;(3)read间的距离信息帮助唯一比对;(4)能做reads合并(如果片段短,PE reads有overlap)。

Q3:什么是PCR重复,为什么要去重?

PCR重复是文库制备时同一DNA片段被PCR扩增产生的多个拷贝。它们不是独立的观测值,如果不去重会导致:(1)覆盖度虚高;(2)变异VAF偏差;(3)假阳性变异调用。去重方法:根据比对位置和方向判断,相同位置的reads保留质量最好的一条。

Q4:BAM文件的FLAG值0x10是什么意思?

0x10 (十进制16) 表示read比对到参考基因组的反向互补链。FLAG是位标志,多个状态可以组合:如0x10+0x1=0x11(17)表示"配对测序且比对到反向链"。用samtools flags 147可以解析任意FLAG值。

Q5:GATK BQSR是做什么的?

BQSR(Base Quality Score Recalibration)校正碱基质量值。测序仪给的质量值不完全准确(受碱基位置、上下文、测序cycle等影响),BQSR通过已知变异位点学习误差模式,校正每个碱基的质量值,从而提高变异检测的准确性。


九、速查表

# === NGS原理速查 ===

# 测序平台比较
# Illumina: 短读长(150-300bp), 高通量, 低错误率(~0.1%), SBS原理
# PacBio:   长读长(15-20kb), CCS准确率99.9%, SMRT原理
# ONT:      超长读长(>100kb), 实时测序, 纳米孔原理, 准确率~98%

# 文件格式
# FASTQ: 原始测序数据(序列+质量)
# SAM/BAM: 比对结果(BAM是二进制压缩)
# VCF: 变异调用结果
# BED: 基因组区间(0-based)
# GFF/GTF: 基因注释

# 标准分析流程
# FASTQ → FastQC/fastp(质控) → BWA(比对) → samtools sort(排序)
# → MarkDuplicates(去重) → BQSR(质量校正) → HaplotypeCaller(变异检测)

# Phred质量值
# Q20 = 99%准确率 = 1%错误
# Q30 = 99.9%准确率 = 0.1%错误
# Q40 = 99.99%准确率 = 0.01%错误

# 推荐覆盖度
# WGS: 30X | WES: 100X | RNA-seq: 20M reads

参考资料:Illumina Technology Spotlight 2024、GATK Best Practices 2024、samtools specification、VCF specification v4.5