NGS科研信息学基因组

GTF与GFF的小趣事

2019-05-14  本文已影响92人  刘小泽

刘小泽写于19.5.14
最近在分析单细胞数据时,发现了有的数据需要将两个genome、两个GTF组合起来分析,但其中一个又是不常见的物种,只能自己去下载gff,然后转换,当然转换过程也有一些小坑

GFF与GTF的概念

GTF与GFF的转换

做项目时发现,自己研究的物种没有gtf,只有gff。不要管,只管下载下来,然后进行转换即可,而转换工具也有不少

工具一:gffread
# 它是由cufflinks开发的,使用如下
gffread -T xxx.gff  -o xxx.gtf
# 生成的结果
NC_000001.11    BestRefSeq      exon    11874   12227   .       +       .       transcript_id "rna0"; gene_id "gene0"; gene_name "DDX11L1";

生成的GTF文件中只有exonCDS信息,第九列只包含transcript_idgene_idgene_name

工具二:genometools中的gff3_to_gtf
# 工具下载安装
http://genometools.org/pub/binary_distributions/gt-1.5.10-Linux_x86_64-64bit-complete.tar.gz
# 它会将一些非exon、CDS的gene_type作为warning信息,可以直接不输出这些无用信息
gt gff3_to_gtf xxx.gff >xxx.gtf 2>/dev/null

不知道其他应用场景,反正在分析10X的时候,利用cellranger mkgtf过程中,使用genometools生成的gtf是不报错的,而gffread会报错

如果连gff也没有怎么办?

做cellranger发现,有时会用到组合两个物种的注释信息,比如其中一个是人,另一个是病毒,人的信息好找,但是病毒的只能找到基因组序列,没有注释信息,对于一些小型的序列可以选择手动去自己做。

另外网上还有一些脚本可以提供参考:例如https://github.com/jorvis/biocode/blob/master/gff/convert_genbank_to_gff3.py

但是自己构建GTF时,一般是先在文本编辑器编辑好,然后再cat >xxx.gtf到命令行中。这个过程一定要注意使用tab分隔,即使数据表明看上去像也不可信

检查的方法有两个:

一个是直接运行cellranger mkgtf 看是否报错,可能会提示:GTF的行数不对;

另一个是直接检查:awk -F '\t' '{print NF}' mcv.gtf,如果显示1,那么说明没有tab分隔,而是用的多个空格,利用sed可以把这些空格替换成tab:

sed 's/ \+ /\t/g' inputfile > outputfile


欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!
上一篇下一篇

猜你喜欢

热点阅读