perl对blast结果bit score进行筛选,保留最大值

while(<>){
	chomp;
	$line=$_;
	@line=split /\t/,$line;
	($name, $score)=@line[0,11];
	if(!exists($max{$name})){
		push @names,$name;
	}
	if(!exists($max{$name})||$s>$max{$name}){
		$max{$name}=$score;
		$best{$name}=();
	}
	if($score==$max{$name}){
		$best{$name}.=$line;
	}
}
for $i (@names){
	print $best{$i}."\n"
}

如果queryA比对到两条序列B、C,并且bit score值相同,则两行会输出为同一行


版权声明:本文为weixin_40099163原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。