Skip to content

单细胞测序中特定基因(内源/外源插入)未检测到的原因分析指南

作者: shirley
时长: 9 分钟
字数: 2.4k 字
更新: 2026-03-20
阅读: 0 次
分析指南 FAQ

本指南旨在指导如何系统性排查单细胞数据分析中,特定基因(如 eGFP、mCherry 或特定内源基因)表达量低或未检出的原因。

检查基因 FASTA 文件和注释 GTF 文件

构建外源基因或准备参考基因组时,FASTA 文件和 GTF 注释文件必须严格符合格式规范,否则会导致比对软件无法识别目标区域或定量失败。

插入基因序列与注释格式要求

插入基因序列文件 (FASTA) 规范

确保外源基因序列已添加到参考基因组 FASTA 文件中,染色体 ID (Header) 需简洁且唯一,严禁包含空格。

bash
>GFP
ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGCGACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAGCTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACCACCCTGACCTACGGCGTGCAGTGCTTCAGCCGCTACCCCGACCACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGCAACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAACAGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATCCGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATCGGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCACCCAGTCCGCCCTGAGCAAAGACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACTCTCGGCATGGACGAGCTGTACAAGTAA

插入基因注释文件 (GTF) 规范

单细胞定量软件(如 SeekSoul Tools)通常要求每个基因必须包含 genetranscriptexon 三行信息,且坐标区间需严格对应。

bash
GFP	insert	gene	1	720	.	+	.	gene_id "GFP"; gene_name "GFP"; gene_biotype "protein_coding";
GFP	insert	transcript	1	720	.	+	.	gene_id "GFP"; gene_name "GFP"; transcript_id "GFP"; gene_biotype "protein_coding";
GFP	insert	exon	1	720	.	+	.	gene_id "GFP"; gene_name "GFP"; transcript_id "GFP"; gene_biotype "protein_coding";
GFP	insert	CDS	1	720	.	+	.	gene_id "GFP"; gene_name "GFP"; transcript_id "GFP"; gene_biotype "protein_coding";

示例脚本(以 GFP 为例)

shell
# 定义变量
GENE="GFP"
CHR="GFP_Chr"
LENGTH=720

# 创建 GTF 文件
echo -e "${CHR}\tUser\tgene\t1\t${LENGTH}\t.\t+\t.\tgene_id \"${GENE}\"; gene_name \"${GENE}\"; gene_biotype \"protein_coding\";" > ${GENE}.gtf
echo -e "${CHR}\tUser\ttranscript\t1\t${LENGTH}\t.\t+\t.\tgene_id \"${GENE}\"; transcript_id \"${GENE}_T1\"; gene_name \"${GENE}\"; gene_biotype \"protein_coding\";" >> ${GENE}.gtf
echo -e "${CHR}\tUser\texon\t1\t${LENGTH}\t.\t+\t.\tgene_id \"${GENE}\"; transcript_id \"${GENE}_T1\"; gene_name \"${GENE}\"; exon_number 1; exon_id \"${GENE}_E1\";" >> ${GENE}.gtf

参考基因组和注释文件的标准化准备

基因组序列文件 (FASTA) 要求规范

  • ID 一致性:FASTA 文件中的染色体 ID (Header 行) 必须与 GTF 文件第一列 (seqname) 完全对应。
  • 子集关系:GTF 中引用的所有 seqname 必须包含在 FASTA 的染色体 ID 集合中。
  • 严禁空格与空行:染色体 ID 中不得包含空格(空格后的内容常被软件截断),且文件中不应有空行。

基因注释文件 (GTF) 详细规范

GTF 文件采用以制表符 (Tab) 分隔的 9 列结构。各列具体要求如下:

列号字段名称描述与规范要求
1seqname染色体或 Contig ID(须与 FASTA 对应)。
2source注释来源(如 RefSeq, GeneScan),若无则填 .
3feature特征类型。必须包含:genetranscriptexon
4start特征起始位置 (1-based 坐标)。
5end特征终止位置(包含在该区间内)。Start 必须始终小于等于 End
6score置信度分值,通常用 . 占位。
7strand链方向:+(正链)或 -(负链)。
8frame编码框 (0, 1, 2)。非 CDS 区域填 .注意:对于负链基因,生物学转录起始点对应 End 坐标
9attribute属性列。格式为 key "value";,每个属性须以分号结尾,属性间用空格分隔。

第 9 列 (Attributes) 核心属性说明

属性列是软件识别基因与转录本对应关系的关键,必须包含:

  • gene_id "value";:基因座的唯一标识符。
  • transcript_id "value";:转录本的唯一标识符。
  • gene_name "value";:基因的显示名称。若缺省,软件通常以 gene_id 代替。
  • gene_biotype "value";:生物学类型(如 protein_coding, lncRNA)。部分软件也使用 gene_type
  • 三层级结构完整性:每个基因记录必须同时具备 genetranscriptexon 三种 feature

可视化验证 Reads 比对情况

若配置文件无误,则需确认目标区域的 Reads 的覆盖情况。

操作方法: 使用 IGV (Integrative Genomics Viewer) 载入最终生成的 BAM 文件及对应的基因组文件。

TIP

参考 igv-reports

  • 情况 A:无 Reads 覆盖:说明库中未捕获到该基因的 mRNA,可能原因包括:
    1. 实验端:基因未表达、引物捕获效率低或 mRNA 降解。
    2. 序列端:提供的插入序列与实验样本中实际序列差异过大,导致比对失败。
  • 情况 B:有大量 Reads 覆盖,但定量结果为 0 或表达很低:说明 Reads 已成功比对,但在分配 (Annotation/Quantification) 阶段被过滤,需进入第三阶段排查。

深入排查 BAM 比对标签 (BAM Tags)

单细胞定量软件根据 BAM 文件中的特征标签判定一条 Read 是否计入 UMI。通过 samtools view 查看目标区域的 Read 详情。

核心标签诊断步骤

  • 检查 XS 标签
    • XS:Z:Unassigned_NoFeatures 且无 XT:Z: 标签:表示 Read 比对到了基因组非编码区 (Intergenic) 或比对质量 (MAPQ) 过低,这类 Read 不计入基因表达量。
  • 检查多重比对 (NH 标签 > 1)
    • 若标签显示 XT:Z:gene1,gene2:表示 Read 同时命中了多个基因,软件会尝试根据外显子/内含子优先级分配,若无法区分,则该 Read 被丢弃。
  • 检查序列同源性
    • XT:Z:gene_id 是唯一基因,但 NH:i:N (N > 1):表示该 Read 在基因组多个位置(如高度相似的同源基因或载体骨架)有相同分值的比对位点,在严谨模式下,多重比对的 Read 通常不计数。

案例分析:荧光蛋白 (eGFP/mCherry) 未检测到

现象描述: 项目中添加了 eGFP 和 mCherry 序列。IGV 显示有极高 Reads 覆盖,但最终表达矩阵中两者计数却很低。

原因排查: 通过查看 BAM 文件,发现大量 Reads 的 NH 标签大于 1 且同时指向 eGFP 和 mCherry。 经核对序列发现:构建参考基因组时,将外源基因的完整序列(包含相同启动子公共载体骨架)都作为 transcripts。由于这些骨架区域序列完全一致,且在 GTF 文件中均被标记为 exon 特征,导致比对软件无法区分 Read 来源于哪个基因,故将其标记为多重比对并过滤。

解决方案: 在构建外源基因索引时,建议在 GTF 文件中仅详细标注特异性编码区 (CDS) 或 3' UTR 区域;或者直接在 FASTA 文件中去除重复的骨架序列,只保留特异性片段,以提高唯一比对率 (Unique Mapping)。


BAM 格式字段详解

BAM 文件是单细胞比对结果的标准存储格式。每一行代表一条 Read 的比对信息,由 11 个标准列(必须列) 和后续的 自定义标签 (Tags) 组成。

标准比对字段 (Standard Mandatory Fields)

列号字段名称说明常见取值与含义
1QNAMERead ID原始 Fastq 文件中的序列名称。
2FLAG比对标识描述 Read 状态的数字信号。0:正链比对;16:负链比对;4:未比对上。
3RNAME参考序列名比对到的染色体名称(如 chr1, chrM, eGFP)。
4POS比对起始位置Read 在染色体上比对的左侧起始坐标(从 1 开始计数)。
5MAPQ比对质量值衡量比对可靠性。在 STAR 软件中,255 代表唯一比对,较低值代表多重比对。
6CIGAR比对拓扑结构描述序列与参考组的匹配细节。M:匹配/错配;N:跨越区域(常指内含子);S:软切除(末端未比对上的序列);D/I:缺失或插入。
7RNEXT配对染色体名双端测序中配对 Read 的染色体名(单端或未比对上显示为 *)。
8PNEXT配对起始位置双端测序中配对 Read 的比对坐标。
9TLEN插入片段长度测序文库的实际片段长度 (Template Length)。
10SEQ碱基序列Read 的原始碱基排列。
11QUAL碱基质量值以 ASCII 码表示的每个碱基的比对可靠性。

常用属性标签 (Custom Tags)

在第 11 列之后,软件(如 STAR, SeekSoul Tools)会添加特定的标签以携带更详尽的比对与定量信息,格式通常为 TAG:TYPE:VALUE

标准比对标签
  • NH (Number of Hits):该 Read 比对到的基因组位置总数。NH:i:1 表示唯一比对
  • HI (Hit Index):多重比对中的索引编号(表示这是该 Read 的第几个比对结果)。
  • AS (Alignment Score):比对分值。分值越高,Read 与参考序列的匹配程度越高。
  • nM (Number of Mismatches):Read 序列中错配碱基的数量。
基因组特征分配标签 (XS/XN/XT)

这类标签用于描述 Read 如何被分配到具体的基因注释上:

  • XS (Assignment Status):描述 Read 分配给基因的状态。
    • XS:Z:Assigned:成功分配。表示 Read 命中了已知的基因区域且链方向一致。
    • XS:Z:Unassigned_NoFeatures:未能分配。表示 Read 比对到了基因组,但该位置没有注释的基因特征(如位于基因间区)。
  • XN (Number of Genes):描述该比对位置重叠的基因数量。
    • XN:i:1:表示该位置只对应 1 个明确的基因。
  • XT (Gene ID)最终定量基因名称
    • XT:Z:GeneName:记录该 Read 最终归属的基因 ID 或名称。这是定量矩阵中计数的核心依据。
单细胞特有标签
  • CB (Cell Barcode):纠错后的细胞条码。
  • UB (UMI Barcode):纠错后的分子条码(用于去重计数)。
0 条评论·0 条回复