Skip to content

如何构建参考基因组

作者: SeekGene
时长: 8 分钟
字数: 2.1k 字
更新: 2026-05-15
阅读: 0 次
SeekSpace® Tools

准备构建基因组所需的文件

使用 SeekSpace® Tools 软件进行空间转录组学分析时,需要准备物种的参考基因组序列和对应的gtf注释文件。相关文件格式说明如下:

基因组序列

基因组序列要求fa格式文件,染色体id要与gtf文件第一列seqname一致,且gtf的seqname需要是fa文件的chrom id的子集。注意文件不可以有空行。

gtf文件

gtf文件格式说明如下:

  1. seqname:序列名称,通常为染色体或Contig ID
  2. source:注释来源,可以是数据库的名称,比如来自RefSeq数据库,也可以是软件的名称,比如用GeneScan软件预测得到,当然,也可以为空,用.点号填充
  3. feature: 代表区间对应的特征类型, 在GTF中,常见类型:gene、transcript、CDS、exon、start_codon、stop_codon等
  4. start: feature 的起始位置
  5. end: feature 的终止位置
  6. score: 表示feature存在和坐标的置信度,可以是一个浮点数或整数,"."表示为空,就是不需要
  7. strand: 该feature 位于参考基因组的正链(+) 或者 负链(-)
  8. frame: 0表示阅读框的第一个完整密码子位于最5'端,1表示第一个完整密码子之前有一个额外的碱基,2表示第一个完整密码子之前有两个额外的碱基。注意frame 不是CDS长度除以3的余数,如果链是'-',则该区域的第一个碱基值为'end',因为对应的编码区将在反义链从end 到start
  9. 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 文件中每个基因必须具备完整的层级关系,即必须同时包含 genetranscriptexon 三种特征(Feature)行。如果原文件仅有 CDS 而无 exon,需自行补全 exon

3. 第7列:strand (链方向)

  • 链方向字符限制:链方向只能是正链 + 或负链 -,绝对不能出现其他符号(如 .? 等)。若存在异常符号,建议统一替换为 +
  • 链方向一致性:同一个基因(gene)内部的所有注释行(包括其下的所有转录本和外显子),其正负链方向必须保持绝对一致。

4. 第9列:attributes (属性)

  • 属性顺序要求:在所有的 attributes 中,gene_name 必须被放置在第一个位置(即属性字符串的最前面),紧跟其后才是 gene_idtranscript_id 等其他属性。
  • 层级继承与必备属性
    • 所有 Feature 行(无论是 genetranscript 还是 exon)都必须包含 gene_id,以便建立正确的基因归属关系。
    • 当 feature 为 gene 时:必须包含 gene_idgene_type(或 gene_biotype,若未提供该属性,则需要默认加上 gene_biotype "protein_coding")。若无 gene_name,须将 gene_id 的值赋给 gene_name
    • 当 feature 为 transcript 时:必须包含 gene_idtranscript_id 以及 gene_type(或 gene_biotype,若未提供该属性,则需要默认加上 gene_biotype "protein_coding")。
    • 当 feature 为 exon 时:必须包含 gene_idtranscript_idexon_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 行都包含该属性。若部分 exonexon_number 而部分没有,会导致下游生成 loom 文件时失败。如果不确定,建议统一删除所有 exon_number 属性。
  • ID 字符限制gene_idtranscript_idgene_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.gtf

TIP

  • 当 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 17179869184

TIP

  • FASTA 文件中染色体名称必须与 GTF 文件中的染色体名称相匹配。例如,FASTA 的 1 号染色体名称为 chr1,那么 GTF 文件中 1 号染色体名称也必须为 chr1
0 条评论·0 条回复