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 文件名(带路径) //显示指定文件的详细差异 ...
随机推荐
- 用gdb+nm调试php c extension程序
.so写好了是给php脚本调用的,如果php脚本执行崩掉了,.so也只能在进程中饮恨而终,这时候php脚本调试经常用的echo, print_r, var_dump都派不上用场了.即使能打印一点儿错误 ...
- 百度Ueditor编辑器取消多图上传对话框中的图片搜索
百度Ueditor确实是一个非常强悍的编辑器,功能强大!但是实际开发需求复杂,总会有各种不符合要求的,比如想要取消多图上传的“图片搜索”选项卡(这个图片搜索真心难用)! 以ueditor 1.4.3为 ...
- 阿里云ECS购买优惠码
今天收到了阿里云给我发的邮件,大意是阿里云推荐码限量开放,可享九折优惠! 于是就点击进去申请了一下 申请的优惠码是:C7IYIS有效期至2015-11-30 23:59:59 首次购买包年包月云服务器 ...
- Java AOP 注解配置与xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- lucene 第一天
Lucene/Solr 第一天 1. 课程计划 Lucene介绍 全文检索流程介绍 a) 索引流程 b) 搜索流程 Lucene入门程序 a) 索引实现 b) 搜索实现 分词器 a) 分词介绍 b ...
- Part10-C语言环境初始化-一跃进入C大门lesson3
1.跳转到c代码 因为内存中的代码来自于垫脚石SRAM,他们是相同的. 采用绝对跳转方式来完成. 因为我们是从汇编代码跳转到c语言的程序,所以我们要提前准备一个main.c文件. 修改makefile ...
- logback.xml 实例
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...
- BZOJ3223 文艺平衡树(splay)
题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...
- 积分之谜——第六届蓝桥杯C语言B组(国赛)第一题
原创 标题:积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单: 第一笔:3个A + 7个B + 1个C,共返积分:3 ...
- C# 可变参数
class Program { static void Main(string[] args) { //常规使用方法 Console.WriteLine(Add(, , , , , , , , })) ...