NGS基础 - GTF/GFF文件格式解读和转换

2018-02-05 16:15:26 浏览数 (1)

GFF 文件

GFF全称为general feature format,这种格式主要是用来注释基因组。

Ensembl 导出的GFF文件示例:

代码语言:javascript复制
X    Ensembl    Repeat    2419108    2419128    42    .    .    hid=trf; hstart=1; hend=21
X    Ensembl    Repeat    2419108    2419410    2502    -    .    hid=AluSx; hstart=1; hend=303
X    Ensembl    Repeat    2419108    2419128    0    .    .    hid=dust; hstart=2419108; hend=2419128
X    Ensembl    Pred.trans.    2416676    2418760    450.19    -    2    genscan=GENSCAN00000019335
X    Ensembl    Variation    2413425    2413425    .         .    
X    Ensembl    Variation    2413805    2413805    .         .

GFF文件是以tab键分割的9列组成,以下为每一列的对应信息:

  1. seq_id:序列的编号,一般为chr或者scanfold编号;
  2. source: 注释的来源,一般为数据库或者注释的机构,如果未知,则用点“.”代替
  3. type: 注释信息的类型,比如Gene、cDNA、mRNA、CDS等;
  4. start: 该基因或转录本在参考序列上的起始位置;(从1开始,包含);
  5. end: 该基因或转录本在参考序列上的终止位置;(从1开始,包含);
  6. score: 得分,数字,是注释信息可能性的说明,可以是序列相似性比对时的E-values值或者基因预测是的P-values值,.表示为空;
  7. strand: 该基因或转录本位于参考序列的正链( )或负链(-)上;
  8. phase: 仅对注释类型为“CDS”有效,表示起始编码的位置,有效值为0、12. (对于编码蛋白质的CDS来说,本列指定下一个密码子开始的位置。每3个核苷酸翻译一个氨基酸,从0开始,CDS的起始位置,除以3,余数就是这个值,,表示到达下一个密码子需要跳过的碱基个数。该编码区第一个密码子的位置,取值0,1,2。0表示该编码框的第一个密码子第一个碱基位于其5’末端;1表示该编码框的第一个密码子的第一个碱基位于该编码区外;2表示该编码框的第一个密码子的第一、二个碱基位于该编码区外;如果Feature为CDS时,必须指明具体值。);
  9. attributes: 一个包含众多属性的列表,格式为“标签=值”(tag=value),以多个键值对组成的注释信息描述,键与值之间用“=”,不同的键值用“;”隔开,一个键可以有多个值,不同值用“,”分割。注意如果描述中包括tab键以及“,= ;”,要用URL转义规则进行转义,如tab键用 代替。键是区分大小写的,以大写字母开头的键是预先定义好的,在后面可能被其他注释信息所调用。

预先定义的键主要包括: ID:注释信息的编号,在一个GFF文件中必须唯一; name:注释信息的名称,可以重复;Alias:别名;Parent > > Indicates:该注释所属的注释,值为注释信息的编号,比如外显子所属的转录组编号,转录组所属的基因的编号。 Parent指明feature所从属的上一级ID,用于将exons聚集成transcript,将transripts聚集成gene,值可以为多个; Target 指明比对的目标区域,一般用于表明序列的比对结果。格式为 “target_idstart end [strand] ,其中strand是可选的(“ ”或”-”),target_id中如果包含空格,则要转换成’ ‘。 Gap:T比对结果的gap信息,和Target一起,用于表明序列的比对结果。Derives_from:Note:备注;Dbxref:数据库索引。

GTF 文件

GTF全称为gene transfer format,主要是用来对基因进行注释。

从 Ensembl 导出的 GTF 文件示例:

代码语言:javascript复制
1 transcribed_unprocessed_pseudogene  gene        11869 14409 .   . gene_id "ENSG00000223972"; gene_name "DDX11L1"; gene_source "havana"; gene_biotype "transcribed_unprocessed_pseudogene"; 
1 processed_transcript                transcript  11869 14409 .   . gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; gene_name "DDX11L1"; gene_sourc e "havana"; gene_biotype "transcribed_unprocessed_pseudogene"; transcript_name "DDX11L1-002"; transcript_source "havana";

当前所广泛使用的GTF格式为第二版(GTF2),它主要是用来描述基因的注释。GTF格式大部分与GFF相同,但有两个硬性标准:

  1. feature types是必须注明的;
  2. 第9列必须以gene_id以及transcript_id开头。而且GTF文件的第9列同GFF文件不同,虽然同样是标签与值配对的情况,但标签与值之间以空格分开,且每个特征之后都要有分号;(包括最后一个特征); gene_id “geneA”;transcript_id “geneA.1”;database_id “0012”;modified_by “Damian”;duplicates 0;

GFF 文件与 GTF 文件相互转换

使用Cufflinks里面的工具gffread

代码语言:javascript复制
#gff2gtf
gffread my.gff3 -T -o my.gtf
#gtf2gff
gffread merged.gtf -o- > merged.gff3

GTF 文件中提取转录本序列(.fa)

  • Cufflink中的gffread
代码语言:javascript复制
gffread transcripts.gtf –g genome.fa –w transcripts.output.fa
# 获取CDS序列
gffread transcripts.gtf –g genome.fa -x cds.output.fa
# 获取蛋白序列
gffread transcripts.gtf –g genome.fa -y protein.output.fa
  • Tophat中的gtf_to_fasta
代码语言:javascript复制
gtf_to_fasta transcripts.gtf genome.fa out_file

使用前先仔细阅读各个参数的意思,选择适合你的需要的参数

获取启动子区序列

注意正负链基因转录起始位点的确定

基因组版本信息对应

具体见这个链接: https://genome.ucsc.edu/FAQ/FAQreleases.html

0 人点赞