GTF/GFF文件的差异及其相互转换
我们在做生物分析的时候,经常会碰到GFF格式的文件以及GTF格式的注释文件。他们有着相似的名字,甚至连内容都极为相似~那么,他们究竟差在哪里呢?
GFF全称为general feature format
,这种格式主要是用来注释基因组。
GTF全称为gene transfer format
,主要是用来对基因进行注释。
数据结构
GTF文件以及GFF文件都由9列数据组成,这两种文件的前8列都是相同的(一些小的差别)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|
reference sequence name | annotation source | feature type | start coordinate | end coordinate | score | strand | frame | attributes |
GFF
GFF文件是一种用来描述基因组特征的文件,现在我们所使用的大部分都是第三版)(GFF3)。GFF允许使用#
作为注释符号,例如很多GFF文件都会使用如下的两行来表明其版本其创建日期:
##gff-version 2
##created 11/11/11
GFF文件每一列所代表的含义前面表格中有,但请注意,它的第3列feature type
是不受约束的,你可以使用任意的名称,但也不要太淘气~用一些适当的名称对于后面的分析会有很大的帮助。
我们需要注意的是GFF文件的第9列,从第二版开始(GFF2),所有的属性都以标签=值
的方式呈现,各个属性之间以;
作为分隔符
ID=geneAExon1;Name=geneA;Parent=geneA;Organism=human
在最新版本的GFF文件中(GFF3),有一些是已经预先定义的属性特征,并且这些特征往往还有特殊的含义:ID
这个标签实在各行都要有的;另外有一个Parent
的属性,它表明了当前的特征是Parent特征的子集。
Contig01 PFAM gene 501 750 . + 0 ID=geneA;Name=geneA
Contig01 PFAM exon 501 650 . + 2 ID=exonA1;Parent=geneA
Contig01 PFAM exon 700 750 . + 2 ID=exonA2;Parent=geneA
GTF
当前所广泛使用的GTF格式为第二版(GTF2),它主要是用来描述基因的注释。GTF格式有两个硬性标准:
- 根据所使用的软件的不同,
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;
两种文件的差异比较
列 | GTF2 | GFF3 |
---|---|---|
reference sequence name | same | same |
annotation source | same | same |
feature type | feature requirements depend on software | can be anything |
start coordinate | same | same |
5. end coordinate | same | same |
score | not used | optional |
strand | same | same |
frame | same | same |
attributes | 空格分隔 | = 分隔 |
两种文件格式之间的转换
偷个懒,直接使用Cufflinks里面的工具gffread
#gff2gtf
gffread my.gff3 -T -o my.gtf
#gtf2gff
gffread merged.gtf -o- > merged.gff3
作者:西瓜要吃我
链接:https://www.jianshu.com/p/48b5a0972301
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
GTF/GFF文件的差异及其相互转换的更多相关文章
- diff 比较两个文件的差异
功能:比较两个文件的差异,并把不同地方的信息显示出来.默认diff格式的信息. diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对 ...
- delphi 创建DBASE和FOXPRO两类DBF数据文件的差异
delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self.Table1.Close; Self.Table1.Active ...
- 文件夹差异文件对比工具 meld
/***************************************************************************************** * 文件夹差异文件 ...
- JAVA中文件与Byte数组相互转换的方法
JAVA中文件与Byte数组相互转换的方法,如下: public class FileUtil { //将文件转换成Byte数组 public static byte[] getBytesByFile ...
- 从细菌GFF文件提取CDS序列并转换为氨基酸序列
最近在上生物信息学原理,打算记录一些课上的作业.第一次作业:如题. 基本思路: 1.从GFF中读取CDS的起始终止位置以及正负链信息.GFF格式见http://blog.sina.com.cn/s/b ...
- git使用记录八:不同提交的指定文件的差异
不同提交的指定文件的差异 git diff commit-id1 commit-id2 path-to-filename
- 使用DOS比较两个txt文件的差异
将两个文件放入到同一个文件夹下 DOS下提供了FC命令 点击开始->运行->输入cmd,进入DOS下,进入指定目录,输入FC a.txt b.txt进行比较,下面会显示出之间的差异
- rsync 文件同步(差异复制)
Rsync 是一种快速且极其通用的文件复制工具.以其 Delta 传输算法,通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量 Rsync 的几种复制方式:Local,SSH 和 R ...
- git比较两个分支的文件的差异
Git diff branch1 branch2 --stat //显示出所有有差异的文件列表 Git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异 ...
随机推荐
- solrserver实例化
以下是httpClient实例化方式,需要tomcat运行Solr服务 1.ConcurrentUpdateSolrServer实例化SolrServer,该类实例化多用于更新删除索引操作 Concu ...
- elasticsearch2.x线程池配置
一个Elasticsearch节点会有多个线程池,但重要的是下面四个: 索引(index):主要是索引数据和删除数据操作(默认是cached类型) 搜索(search):主要是获取,统计和搜索操作(默 ...
- SpringAOP01 利用AOP实现权限验证、利用权限验证服务实现权限验证
1 编程范式 1.1 面向过程 1.2 面向对象 1.3 面向切面编程 1.4 函数式编程 1.5 事件驱动编程 2 什么是面向切面编程 2.1 是一种编程范式,而不是一种编程语言 2.2 解决一些特 ...
- 面试题:TCP协议三次握手
一.首先了解TCP报文格式 其中必须了解的字段有: 1.源端口与目的端口:16位,标识出发送端与接收端的端口号. 2.序号:32位,也叫顺序号.seg序号,本报文段所发送的数据的第一个字节的序号,用来 ...
- 面试题:String StringBufere StringBuilder 不用看
一.String 使用 private final char value[]来实现字符串存储 所以String对象创建之后就不能再修改此对象中存储的字符串内容,所以说String本质是字符数组char ...
- Mysql处理海量数据时的一些优化查询速度方法(转)
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果whe ...
- VS2013中全局属性与局部属性的设置
为了更好的体现程序与库的独立性,vc++2013 中库路径设置不再采用全局设置,就是说在每个工程中都可以有自己独立的库路径设置,当然你如果不设置,那默认就是vs2013自己的库路径.但是如果你需要用到 ...
- Controller级别的异常处理过滤器IExceptionFilter
1,系统自带的HandleErrorAttribute类继承自IExceptionFilter,是MVC的默认实现. 同时设置web.config <system.web> <cus ...
- 单个控件textbox只支持在英文状态下输入所需的字符串
也就是它的属性: Imemode的属性 设置成off就可以了 ,就不会受到所输入的中文汉字了.
- UltraEdit 回车符替换空格
查找和替换 输入 ^r^n 替换为:(空格)