【3.5】GFF3格式

GFF是一种用于定位和描述 与DNA,RNA和蛋白质序列相关的基因和其他局部特征的格式。 GFF格式的规范已经到第三个版本了:

  • GFF版本3,即2005年11月发布的最新版本(链接到Sequence Ontology SourceForge网站)
  • Sanger Institute的GFF网站上的GFF版本2。

请注意,GFF3与版本2向后兼容,但引入了更多结构(除其他事项外)用于功能的层次结构分组。

一、详解

GFF3是GFF注释文件的新标准。文件中每一行为基因组的一个属性,分为9列,以TAB分开。

例子:P0A7B8.gff

依次是:

1.reference sequence:参照序列

指出注释的对象。如一个染色体,克隆或片段。可以有多个参照序列。 该id的取名不能以’>’开头,不能包含空格。

2.source :来源

注释的来源。如果未知,则用点(.)代替。

3.type :类型

属性的类型。建议使用符合SO惯例的名称(sequence ontology,参看[[Sequence Ontology Project]]) ,如gene,repeat_region,exon,CDS等。

4.start position :起点

属性对应片段的起点。从1开始计数。

5.end position :终点

属性对应片段的终点。一般比起点的数值要大。

6.score :得分

对于一些可以量化的属性,可以在此设置一个数值以表示程度的不同。如果为空,用点(.)代替。

7.strand :链

“+”表示正链,“-”表示负链,“.”表示不需要指定正负链。

8.phase :步进

对于编码蛋白质的CDS来说,本列指定下一个密码子开始的位置。可以是0,1或2,表示到达下一个密码子需要跳过的碱基个数。 对于其它属性,则用点(.)代替。

9.attributes :属性

一个包含众多属性的列表。格式为“标签=值”(tag=value)。不同属性之间以分号相隔。可以存在空格,不过若有“,=;”则用URL转义(URL escaping rule),同时TAB也需要转换为“ ”表示。所有以大写字幕开头的标签被保留,用于大众认可的用途,而以小写字母开头的标签则根据自己安排随意应用。 下列的标签已定义:

ID
指定一个唯一的标识。对属性分类是非常好用(例如查找一个转录单位中所以的外显子)。
Name
指定属性的名称。展示给用户的就是该属性。。Name的值在可视化的时候得到展示。因此,Name可以根据自己展示的需要随意取值。
Alias
名称的代称或其它。当存在其它名称时使用该属性。
Parent
指明feature所从属的上一级ID。用于将exons聚集成transcript,将transripts聚集成gene。
Target
指明比对的目标区域,一般用于表明序列的比对结果。格式为”target_id start end [strand]“,其中strand是可选的(“+”或”-”), target_id中如果包含空格,则要转换成’ ′。
Gap
比对结果的gap信息,和Target一起,用于表明序列的比对结果。
Note
描述性的一些说明。
Is_circular
表明featrue是否为环化的。用于环状基因组序列。

同一个tag如果有多个值,则多个值之间使用逗号隔开,比如:

Parent=AF2312,AB2812,abc-3
Alias=M19211,gna-12,GAMMA-GLOBULIN

能够使用多个值的tag有:Parent, Alias, Note, Dbxref and Ontology_term。

二、其他技巧

1.比如我们先看每条染色体的基因个数

zcat Homo_sapiens.GRCh38.87.chr.gtf.gz |perl -alne ‘{print if $F[2] eq “gene” }’ |cut -f 1 |sort |uniq -c

  1. GFF3文件检测

检验GFF3格式文件 http://modencode.oicr.on.ca/cgi-bin/validate_gff3_online

  1. 用到gff格式的工具
  • Jalview, the multiple sequence alignment editor & viewer,
  • STRAP, the structural alignment tool (example output).

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn