(转) gffcompare和gffread | gtf | gff3 格式文件的分析 | gtf处理 | gtfparse
工具推荐:https://github.com/openvax/gtfparse
真不敢相信,Linux自带的命令会这么强大,从gtf中提取出需要的transcript,看起来复杂,其实一个grep就搞定了。
grep -F -f out.list gffcmp.combined.gtf > test.out
本文出自于http://www.bioinfo-scrounger.com转载请注明出处
gffcompare和gffread可以认为是专门开发出来用于处理gff格式文件的小工具。现在gff格式一般是用第三版gff3,以小鼠genecode上下载的gff文件为例,如下所示:
chr1 HAVANA gene 3073253 3074322 . + . ID=ENSMUSG00000102693.1;gene_id=ENSMUSG00000102693.1;gene_type=TEC;gene_name=4933401J01Rik;level=2;havana_gene=OTTMUSG00000049935.1
chr1 HAVANA transcript 3073253 3074322 . + . ID=ENSMUST00000193812.1;Parent=ENSMUSG00000102693.1;gene_id=ENSMUSG00000102693.1;transcript_id=ENSMUST00000193812.1;gene_type=TEC;gene_name=4933401J01Rik;transcript_type=TEC;transcript_name=4933401J01Rik-001;level=2;transcript_support_level=NA;tag=basic;havana_gene=OTTMUSG00000049935.1;havana_transcript=OTTMUST00000127109.1
chr1 HAVANA exon 3073253 3074322 . + . ID=exon:ENSMUST00000193812.1:1;Parent=ENSMUST00000193812.1;gene_id=ENSMUSG00000102693.1;transcript_id=ENSMUST00000193812.1;gene_type=TEC;gene_name=4933401J01Rik;transcript_type=TEC;transcript_name=4933401J01Rik-001;exon_number=1;exon_id=ENSMUSE00001343744.1;level=2;transcript_support_level=NA;tag=basic;havana_gene=OTTMUSG00000049935.1;havana_transcript=OTTMUST00000127109.1
而gtf格式一般来说跟gff很相似,也是以小鼠genecode上下载的gtf文件为例,如下所示
chr1 HAVANA gene 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; gene_type "TEC"; gene_name "4933401J01Rik"; level 2; havana_gene "OTTMUSG00000049935.1";
chr1 HAVANA transcript 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript_name "4933401J01Rik-001"; level 2; transcript_support_level "NA"; tag "basic"; havana_gene "OTTMUSG00000049935.1"; havana_transcript "OTTMUST00000127109.1";
chr1 HAVANA exon 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript_name "4933401J01Rik-001"; exon_number 1; exon_id "ENSMUSE00001343744.1"; level 2; transcript_support_level "NA"; tag "basic"; havana_gene "OTTMUSG00000049935.1"; havana_transcript "OTTMUST00000127109.1";
从上可以看出,就小鼠而言,gff和gtf文件只有在最后一列,也就是attribures列有略微区别;前者名称和值是以等号隔开,后者则是以空格隔开
因此gffcompare和gff不仅可以用来处理gff格式文件,还可以处理gtf格式文件
这两个工具都是约翰·霍普金斯大学开发的,也是hisat2和stringtie的开发者,下载地址如下:
http://ccb.jhu.edu/software/stringtie/gff.shtml,这个网页不仅有下载地址,还有软件的简单介绍。注:下载有二进制版本的,可以不用编译直接使用,方便。
还有这个网址也对gtf格式以及gff格式做了解释,可以整体上了解gtf和gff的区别
gffcompare
按照官网的说法,gffcompare可以用来compare, merge, annotate and estimate accuracy of one or more GFF files,并且这个软件是基于cuffcompare开发的,所以gffcompare很多输入和输出文件都与cuffcompare相同
参数通过gffcompare -h命令查看即可
以stringTie组装并merge后的结果文件(merged.gtf)为例,参考基因组注释文件为gencode.vM13.annotation.gtf,compare下两者的结果并进行注释
gffcompare -R -r gencode.vM13.annotation.gtf -o strtcmp merged.gtf
输出文件几乎跟cuffcompare一样,除了结果中的.combined.gtf变为.annotated.gtf,但是文件里的格式几乎是一样的,除了有一点,.annotated.gtf文件会保留original transcript IDs,但是.combined.gtf是没有这一点的
对于文件每列的具体含义可以看cuffcompare官网,也可以看之前的一篇博文转录组的组装Stingtie和Cufflinks
gffread
gffread这工具,官网的定义为used to generate a FASTA file with the DNA sequences for all transcripts in a GFF file,在知道这工具前,我做这个操作是自己写的perl脚本,但是从运行效率上来说,还是这工具快。。。
比如一个很常见的需求,对于stringtie组装后的gtf文件,想将组装后的转录本的序列从对应的参考基因组上提取出来,这时就可以用gffread这工具了,还是上述的小鼠为例:
gffread -w transcripts.fa -g mm10.fa stringtie_merged.gtf
查看各参数的含义gffread -h
之前使用的时候只用了这个功能,但是最近在公众号(生信菜鸟团的一篇软文:NGS数据格式之gff/gtf)看到gffread可以将gtf和gff格式之间进行相互转化,所以试了下
如:gtf转化为gff
gffread gencode.vM13.annotation.gtf -o tmp.gff3
输出文件如下:
chr1 HAVANA transcript 3073253 3074322 . + . ID=ENSMUST00000193812.1;geneID=ENSMUSG00000102693.1;gene_name=4933401J01Rik
chr1 HAVANA exon 3073253 3074322 . + . Parent=ENSMUST00000193812.1
从结果上可以看出,gffread输出的是其定义后的gff3格式的文件,与输入的相比没有了feature为gene的行,attribures列也变得较为省略
如:gff转化为gtf
gffread gencode.vM13.annotation.gff3 -T -o tmp.gtf
输入文件如下:
chr1 HAVANA exon 3073253 3074322 . + . transcript_id "ENSMUST00000193812.1"; gene_id "ENSMUSG00000102693.1"; gene_name "4933401J01Rik";
从结果上来看,gffread定义的gtf文件变得更为省略了,并且还有做了些限制,当然这些在官网GFF utilities中有说明
综上所述,gffcompare和gffread用处还有可以的,值得留意下
(转) gffcompare和gffread | gtf | gff3 格式文件的分析 | gtf处理 | gtfparse的更多相关文章
- GFF3格式文件
GFF3是GFF注释文件的新标准.文件中每一行为基因组的一个属性,分为9列,以TAB分开. 依次是: 1. reference sequence:参照序列 指出注释的对象.如一个染色体,克隆或片段.可 ...
- seg格式文件的分析
s ,r, c1, c2 第r行的c1列到 c2列的值为s
- GFF3格式
GFF3是GFF注释文件的新标准.文件中每一行为基因组的一个属性,分为9列,以TAB分开. 依次是: 1. reference sequence:参照序列 指出注释的对象.如一个染色体,克隆或片段.可 ...
- 【NLP】Tika 文本预处理:抽取各种格式文件内容
Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重 ...
- Mac新建文件夹、txt文件、无格式文件
新建文件夹: mkdir test 新建txt touch test.txt 新建无后缀格式文件 touch test 如果要删除文件夹 rm -r -f test
- 针对格式文件,Python读取一定大小的文件内容
由数据库导出的数据是格式化数据,如下所示,每两个<REC>之间的数据是一个记录的所有字段数据,如<TITLE>.<ABSTRACT>.<SUBJECT_COD ...
- 报表开发导出各种格式文件的API
文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要.报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf.Excel.Wo ...
- 2013xlsm格式文件处理
2013xlsm格式文件处理 2013格式的xlsm文件在低版本打开为空白的处理 1.关闭2013的宏2.打开文件,另存(去打开密码)3.2007打开另存(格式已变为2007)4.仅破解VBA密码5. ...
- Servlet 实现上传文件以及同时,写入xml格式文件和上传
package com.isoftstone.eply.servlet; import java.io.BufferedReader; import java.io.BufferedWriter; i ...
随机推荐
- 几道cf水题
题意:给你包含n个元素的数组和k种元素,要求k种元素要用完,并且每种颜色至少用一次,n个元素,如果某几个元素的值相同,这些个元素也不能染成同一种元素. 思路:如果元素个数n小于k或者值相同的元素的个数 ...
- CentOS7学习记录(工具使用篇)
一. 远程连接终端中文乱码:如xShell 检查当前系统语言:echo $LANG 查看系统安装语言包:locale ,如果包含zh_CN.UTF-8表示已经安装中文语言.如果没有中文包,使用命令 ...
- 01 Hello World!
from tkinter import Label#获取组件对象 widget=Label(None,text='Hello GUI world!')#生成 widget.pack()#布置 widg ...
- dede的使用-2
自己开发站点的规律, 跟cms开发的规律应该是一样的, 而且应该学习和借鉴cms的开发规律方法和思想.比如也要分站点的内容性质, 是文章类站点, 还是图片类, 还是shopping类等. 也要分栏目. ...
- [转]web高级开发的成长之路
读了这篇文章之后感觉蛮受启发的,在此分享一下,献给和我一样处于困惑的朋友. 正文如下: 本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走 ...
- java 之 基础加强(一)
常用快捷键: alt + / 代码提示 ctrl + / 单行注释 取消注释 ctrl + shift +/ 多行注释(先选中内容) ctrl + shift +\ 取消注释(先选中内容) ctrl ...
- 【AI】微软人工智能学习笔记(二)
微软Azure机器学习服务 01|机器学习概述 首先上一张图, 这个图里面的大神是谁我也不清楚反正,但是看起来这句话说得很有哲理就贴出来了. 所以在人工智能领域下面的这个机器学习,到底是一个什么样的概 ...
- 将一个符合URL格式的字符串变成链接
function replaceURLWithHTMLLinks(text) { /* Example: >>> GateOne.Utils.replaceURLWithHTMLLi ...
- [从零开始搭网站二]服务器环境配置:Mac电脑连接CentOS不用每次都输入密码
上一篇讲了如何购买服务器,并且***.看这里的第一篇文章: 从零开始搭网站 从这里开始的文章,我会默认大家都是最起码是入门级的程序员,如果你完全不懂我在说什么,那就退出好了. 作为开发人员,接下来为了 ...
- colgroup和col的区别
转载自:http://blog.csdn.net/carefree31441/article/details/3291397 colgroup和col一般出现在表格当中定义表格单独列的任意属性col能 ...