前几天老师布置了一个任务,寻找夹竹桃科Apocynaceae分类下的物种参考基因组,我在plaBiPD网站和NCBI的genome数据库中只找到包括罗布麻在内的5个已发表物种参考基因组,且都是gbff格式的。提交之后被告知需要gff格式的,因为gbf格式中没有基因相关结构的位置信息。找了一个perl脚本完成了任务。
emmmmm….其实不是很理解,因为gbff格式和gff格式是可以相互转换的,如果gbff注释文件中有信息缺失,那么gff格式也同样没有相关信息….不管怎么样先转换个格式交差,网上搜了下有前人写的perl脚本可以用,但是我以前没接触过perl语言,这里做个笔记写一下自己瞎捣鼓的过程。
1. perl语言和CPAN模块库
从百度百科中引用对perl语言的一段描述:
Perl是一种功能丰富的计算机程序语言,易于使用、高效、完整,而不是美观(小巧,优雅,简约)。同时支持过程和面向对象编程,对文本处理具有强大的内置支持,并且拥有第三方模块集合之一。 Perl借取了C、sed、awk、shell脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
看到这个简介,个人的理解就是perl语言就像python一样,自己有丰富的第三方库可以调用。同样,我们不需要具体了解每个模块的实现方式和底层代码,只要知道会调用相关的模块实现自己的目标即可。
CPAN是perl的一个第三方源码模块库,里面有上百万的perl模块,用于支撑perl的各种功能。为了方便安装perl的各种模块,前人做了一个CPAN模块,用cpan命令来安装perl的各个模块。也可以通过cpan命令来安装bioperl模块,里面有非常多的有关生信分析的perl脚本。
2. 安装和配置bioperl
运行gbff转换gff3的perl脚本需要调用bioperl的一些模块,因此第一步需要安装bioperl,以及配置相应的环境。
登录学校集群,发现系统自带安装了perl程序和CPAN模块,我们可以用CPAN来安装bioperl。
1 | # 在命令行进入CPAN交互式界面 |
进入CPAN交互式界面如下:
1 | # 在线寻找bioperl安装包 |
之后就是漫长的安装过程了,所有依赖关系也会一并安装,安装的时间较长,大概需要半个小时。
安装完成之后是配置环境变量,不配置的话即使安装了bioperl,也会找不到对应的模块。我的bioperl安装路径是/public/home/wlxie/miniconda3/envs/biosoft/lib/perl5/site_perl/5.22.0/Bio/,可以通过echo $PERL5LIB
来查看当前perl模块的调用路径,然后在家目录的.bashrc环境变量文件中将bioperl的模块路径加到perl模块调用的路径当中。
1 | 在。bashrc文件最后一行加入bioperl模块调用路径 |
这样所有的配置就完成了。
3. gbff格式转换gff3
github上有许多gbff格式转gff3格式的脚本代码,有用biopython做的,也有bioperl做的,可能是我配置的问题,试了几个脚本后只有一个可以顺利转换。本来想研究一下脚本的实现方式,可是源代码2000多行看的我实在不知从何下手,这里只记录一下使用方法和备份脚本文件。
源代码的出处已经找不到了…点击这里查看源代码在本站的备份
使用方法:
将脚本文件bp_genbank2gff3.pl放在要转换格式的gbff文件同一个目录下,运行命令
1 | # perl bp_genbank2gff3.pl gbff文件名 |
脚本自动运行,结束后会在当前目录生成同名的gff3文件