抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前几天老师布置了一个任务,寻找夹竹桃科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
2
# 在命令行进入CPAN交互式界面
perl -MCPAN -e shell

进入CPAN交互式界面如下:

1
2
3
4
# 在线寻找bioperl安装包
cpan>d /bioperl/
# 安装对应版本的bioperl,注意目录和版本号根据搜出来的结果不同而不同
cpan>install S/SE/SENDU/bioperl-1.5.2_100.tar.gz

之后就是漫长的安装过程了,所有依赖关系也会一并安装,安装的时间较长,大概需要半个小时。

安装完成之后是配置环境变量,不配置的话即使安装了bioperl,也会找不到对应的模块。我的bioperl安装路径是/public/home/wlxie/miniconda3/envs/biosoft/lib/perl5/site_perl/5.22.0/Bio/,可以通过echo $PERL5LIB来查看当前perl模块的调用路径,然后在家目录的.bashrc环境变量文件中将bioperl的模块路径加到perl模块调用的路径当中。

1
2
# 在。bashrc文件最后一行加入bioperl模块调用路径
export PERL5LIB="/public/home/wlxie/miniconda3/envs/biosoft/lib/perl5/site_perl/5.22.0/:$PERL5LIB"

这样所有的配置就完成了。

3. gbff格式转换gff3

github上有许多gbff格式转gff3格式的脚本代码,有用biopython做的,也有bioperl做的,可能是我配置的问题,试了几个脚本后只有一个可以顺利转换。本来想研究一下脚本的实现方式,可是源代码2000多行看的我实在不知从何下手,这里只记录一下使用方法和备份脚本文件。

源代码的出处已经找不到了…点击这里查看源代码在本站的备份

使用方法:

将脚本文件bp_genbank2gff3.pl放在要转换格式的gbff文件同一个目录下,运行命令

1
2
# perl bp_genbank2gff3.pl gbff文件名
perl bp_genbank2gff3.pl Asclepias_syriaca-GCA_002018285.1_ASM201828v1_genomic.gbff

脚本自动运行,结束后会在当前目录生成同名的gff3文件

欢迎小伙伴们留言评论~