如何构建参考基因组
时长: 8 分钟
字数: 2.1k 字
更新: 2026-05-15
阅读: 0 次
准备构建基因组所需的文件
使用 SeekSpace® Tools 软件进行空间转录组学分析时,需要准备物种的参考基因组序列和对应的gtf注释文件。相关文件格式说明如下:
基因组序列
基因组序列要求fa格式文件,染色体id要与gtf文件第一列seqname一致,且gtf的seqname需要是fa文件的chrom id的子集。注意文件不可以有空行。
gtf文件
gtf文件格式说明如下:
- seqname:序列名称,通常为染色体或Contig ID
- source:注释来源,可以是数据库的名称,比如来自RefSeq数据库,也可以是软件的名称,比如用GeneScan软件预测得到,当然,也可以为空,用.点号填充
- feature: 代表区间对应的特征类型, 在GTF中,常见类型:gene、transcript、CDS、exon、start_codon、stop_codon等
- start: feature 的起始位置
- end: feature 的终止位置
- score: 表示feature存在和坐标的置信度,可以是一个浮点数或整数,"."表示为空,就是不需要
- strand: 该feature 位于参考基因组的正链(+) 或者 负链(-)
- frame: 0表示阅读框的第一个完整密码子位于最5'端,1表示第一个完整密码子之前有一个额外的碱基,2表示第一个完整密码子之前有两个额外的碱基。注意frame 不是CDS长度除以3的余数,如果链是'-',则该区域的第一个碱基值为'end',因为对应的编码区将在反义链从end 到start
- attribute: 应具有的格式是 attributes_name "attributes_values"; 每个属性必须以分号结尾并且与下一个属性之间以空格分隔,并且属性的值用双引号包围。包含以下三种属性:
| attribute | 含义 |
|---|---|
| gene_id "value"; | 表示转录本在基因组上的基因座的唯一ID。 gene_id与value值用空格分开,如果值为空,则表示没有对应的基因。 |
| transcript_id "value"; | 预测转录本的唯一ID。transcipt_id 与value值用空格分开,空表示没有转录本 |
| gene_type "value"; | gene的生物学类型,protein coding;lncRNA...... |
TIP
自行准备参考基因组时,为确保软件能正确解析并进行后续分析,基因组文件(FASTA 序列文件和 GTF 注释文件)内部需要严格遵守以下规范:
一、 GTF 与 FASTA 共同需满足的规范
- 严禁空行:GTF 和 FASTA 文件内部均不可包含任何空行。
- 染色体名称匹配一致:FASTA 文件中的染色体名称(提取自
>后的首个单词)必须与 GTF 文件第一列(seqname)完全一致,不支持相互包含的关系。GTF 文件中的染色体名称必须存在于 FASTA 文件中,若 GTF 中存在 FASTA 中没有的多余染色体注释,需将其删除。 - 染色体长度限制:单条染色体的长度不能超过 536,870,912 bp,若超出该长度上限,需要提前将该染色体进行拆分处理。
- 坐标边界限制:GTF 文件中注释的所有特征(Feature)的起始(start)和终止(end)坐标,绝对不能超过对应 FASTA 文件中该条染色体的实际总长度。
二、 GTF 文件各列的具体规范要求 GTF 文件需进行严格的逻辑排序(依次按染色体、链方向、基因起止坐标、转录本起止坐标,并遵循 gene -> transcript -> exon 的层级顺序排列)。此外,各列需满足:
1. 第1列:seqname (染色体名称)
- 前缀与字符限制:染色体名称必须以
chr开头。名称中不能包含连字符-或下划线_(建议将此类符号统一替换为点号.)。
2. 第3列:feature (特征层级)
- 层级完整性:GTF 文件中每个基因必须具备完整的层级关系,即必须同时包含
gene、transcript和exon三种特征(Feature)行。如果原文件仅有CDS而无exon,需自行补全exon。
3. 第7列:strand (链方向)
- 链方向字符限制:链方向只能是正链
+或负链-,绝对不能出现其他符号(如.或?等)。若存在异常符号,建议统一替换为+。 - 链方向一致性:同一个基因(gene)内部的所有注释行(包括其下的所有转录本和外显子),其正负链方向必须保持绝对一致。
4. 第9列:attributes (属性)
- 属性顺序要求:在所有的 attributes 中,
gene_name必须被放置在第一个位置(即属性字符串的最前面),紧跟其后才是gene_id、transcript_id等其他属性。 - 层级继承与必备属性:
- 所有 Feature 行(无论是
gene、transcript还是exon)都必须包含gene_id,以便建立正确的基因归属关系。 - 当 feature 为
gene时:必须包含gene_id和gene_type(或gene_biotype,若未提供该属性,则需要默认加上gene_biotype "protein_coding")。若无gene_name,须将gene_id的值赋给gene_name。 - 当 feature 为
transcript时:必须包含gene_id、transcript_id以及gene_type(或gene_biotype,若未提供该属性,则需要默认加上gene_biotype "protein_coding")。 - 当 feature 为
exon时:必须包含gene_id、transcript_id、exon_id以及gene_type(或gene_biotype,若未提供该属性,则需要默认加上gene_biotype "protein_coding")。如果原文件缺失exon_id,建议提取对应的transcript_id作为基础,并根据该外显子在转录本中的出现顺序,在其后附加序号后缀(例如:exon_id "transcriptA.1",exon_id "transcriptA.2"等)进行补全,缺失exon_id会影响 read 注释到多个基因时的正确处理。 - 关于
exon_number:如果 GTF 中提供了exon_number属性,则必须确保所有exon行都包含该属性。若部分exon有exon_number而部分没有,会导致下游生成 loom 文件时失败。如果不确定,建议统一删除所有exon_number属性。
- 所有 Feature 行(无论是
- ID 字符限制:
gene_id、transcript_id和gene_name的值只能包含数字、字母和点号(.),不能包含空格、连字符等其他任何字符(建议将其他非法字符统一替换为点号.);严禁使用"NA"或空字符串""作为 ID 的值,以免引起下游报错。 - 线粒体基因标识:线粒体基因的
gene_name必须以"Mt-"或"mt-"开头,否则在分析报告中线粒体(mito)部分的比例将始终计算为 0。
场景一:构建兼容不同平台单细胞数据的参考基因组
NOTE
如果您既有 10X Genomics 单细胞数据,又有 SeekSpace® 产品的单细胞数据,推荐使用10X CellRanger来构建参考基因组,SeekSpace® Tools 可以兼容 CellRanger 构建的参考基因组。
处理基因注释文件(GTF 文件)的代码如下:
shell
/path/to/cellranger mkgtf Homo_sapiens.GRCh38.ensembl.gtf Homo_sapiens.GRCh38.ensembl.filtered.gtf \
--attribute=gene_biotype:protein_coding \
--attribute=gene_biotype:lncRNA \
--attribute=gene_biotype:antisense \
--attribute=gene_biotype:IG_LV_gene \
--attribute=gene_biotype:IG_V_gene \
--attribute=gene_biotype:IG_V_pseudogene \
--attribute=gene_biotype:IG_D_gene \
--attribute=gene_biotype:IG_J_gene \
--attribute=gene_biotype:IG_J_pseudogene \
--attribute=gene_biotype:IG_C_gene \
--attribute=gene_biotype:IG_C_pseudogene \
--attribute=gene_biotype:TR_V_gene \
--attribute=gene_biotype:TR_V_pseudogene \
--attribute=gene_biotype:TR_D_gene \
--attribute=gene_biotype:TR_J_gene \
--attribute=gene_biotype:TR_J_pseudogene \
--attribute=gene_biotype:TR_C_gene
cellranger mkref --genome=GRCh38 --fasta=GRCh38.fa --genes=GRCh38-filtered-ensembl.gtf
cd GRCh38/genes
gunzip -dc genes.gtf.gz > genes.gtfTIP
- 当 Cell Ranger 构建的参考基因组与 SeekSpace® Tools 的 STAR 版本不兼容时,可以将 Cell Ranger 的 STAR 路径指定给 SeekSpace® Tools,例如:
--star_path /path/to/cellranger-5.0.1/lib/bin/STAR。 - FASTA 文件中染色体名称必须与 GTF 文件中的染色体名称相匹配。例如,FASTA 的 1 号染色体名称为
chr1,那么 GTF 文件中 1 号染色体名称也必须为chr1。
场景二:仅有 SeekSpace® 产品,不需要考虑平台兼容性
构建 STAR 索引的代码如下:
shell
/demo/seekspacetools_v1.0.2/bin/STAR \
--runMode genomeGenerate \
--runThreadN 16 \
--genomeDir /path/to/star \
--genomeFastaFiles /path/to/genome.fa \
--sjdbGTFfile /path/to/genome.gtf \
--sjdbOverhang 149 \
--limitGenomeGenerateRAM 17179869184TIP
- FASTA 文件中染色体名称必须与 GTF 文件中的染色体名称相匹配。例如,FASTA 的 1 号染色体名称为
chr1,那么 GTF 文件中 1 号染色体名称也必须为chr1。
