NGS基础 - GTF/GFF文件格式解读和转换
GFF 文件
GFF全称为general feature format
,这种格式主要是用来注释基因组。
从 Ensembl
导出的GFF
文件示例:
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列组成,以下为每一列的对应信息:
seq_id:序列的编号,一般为chr或者scanfold编号;
source: 注释的来源,一般为数据库或者注释的机构,如果未知,则用点“.”代替
type: 注释信息的类型,比如Gene、cDNA、mRNA、CDS等;
start: 该基因或转录本在参考序列上的起始位置;(从1开始,包含);
end: 该基因或转录本在参考序列上的终止位置;(从1开始,包含);
score: 得分,数字,是注释信息可能性的说明,可以是序列相似性比对时的E-values值或者基因预测是的P-values值,
.
表示为空;strand: 该基因或转录本位于参考序列的正链(+)或负链(-)上;
phase: 仅对注释类型为“CDS”有效,表示起始编码的位置,有效值为0、12. (对于编码蛋白质的CDS来说,本列指定下一个密码子开始的位置。每3个核苷酸翻译一个氨基酸,从0开始,CDS的起始位置,除以3,余数就是这个值,,表示到达下一个密码子需要跳过的碱基个数。该编码区第一个密码子的位置,取值0,1,2。0表示该编码框的第一个密码子第一个碱基位于其5’末端;1表示该编码框的第一个密码子的第一个碱基位于该编码区外;2表示该编码框的第一个密码子的第一、二个碱基位于该编码区外;如果Feature为CDS时,必须指明具体值。);
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 文件示例:
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相同,但有两个硬性标准:
feature types是必须注明的;
第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
#gff2gtf
gffread my.gff3 -T -o my.gtf
#gtf2gff
gffread merged.gtf -o- > merged.gff3
GTF 文件中提取转录本序列(.fa)
Cufflink中的gffread
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
gtf_to_fasta transcripts.gtf genome.fa out_file
使用前先仔细阅读各个参数的意思,选择适合你的需要的参数
获取启动子区序列
注意正负链基因转录起始位点的确定
基因组版本信息对应
具体见这个链接: https://genome.ucsc.edu/FAQ/FAQreleases.html
NGS软件
测序数据可视化 (三) - UCSC genomebrowser