当一个基因组含有多个 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” 获取下载链接。

生信之巅微信公众号生信之巅小程序码

敬告:使用文中脚本请引用本文网址,请尊重本人的劳动成果,谢谢!Notice: When you use the scripts in this article, please cite the link of this webpage. Thank you!

Edited on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Hualin Liu WeChat Pay

WeChat Pay

Hualin Liu Alipay

Alipay