当一个基因组含有多个 Contigs/Scaffolds 的时候,在 GenBank 文件中也会产生多个 LOCUS。某些软件会将 GenBank 文件作为输入,但仅支持一个 GenBank 文件中只包含一条 Contig/Scaffold,如基因岛预测软件 islandpath。这个时候就需要我们将 GenBank 文件进行切割。手动切是体力活,也不像钓鱼那样有成就感,因此提供一个脚本 "split_GenBank.pl" 来完成。
敬告:使用该脚本请引用本文网址,请尊重本人的劳动成果,谢谢!
#!/usr/bin/perl | |
use strict; | |
use warnings; | |
# Author: Liu hualin | |
# Date: Oct 9, 2021 | |
my @gbk = glob("*.gbk");# 批处理所有后缀为.gbk 的文件 | |
foreach (@gbk) { | |
$_=~/(.+).gbk/; | |
my $str = $1; | |
open IN, "$_" || die; | |
local $/ = "LOCUS"; | |
<IN>; | |
while (<IN>) { | |
chomp; | |
$_=~/\s+(\S+)/; | |
my $scaf = $1; | |
my $out = $str . "_" . $scaf . ".gb"; | |
my $assession = $str . "_" . $scaf; | |
$_=~s/ACCESSION.+/ACCESSION $assession/g;# 添加 ACCESSION number | |
open OUT, ">$out" || die; | |
print OUT "LOCUS$_"; | |
close OUT; | |
} | |
close IN; | |
} |
将脚本与后缀名为 “.gbk” 的 GenBank 文件放在同一目录下,运行如下代码:
perl split_GenBank.pl |
得到的后缀名为 “.gb” 的文件即为切割后的 GenBank 文件。
# 脚本获取
关注公众号 “生信之巅”,聊天窗口回复 “d9f9” 获取下载链接。
敬告:使用文中脚本请引用本文网址,请尊重本人的劳动成果,谢谢!