可以把一个fasta序列格式的核酸序列 转换为其反向互补链,并且每行60个碱基的格式化输出

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

#!/usr/bin/env perl

use strict;
use warnings;

local $/ = ">";
while(<>){
	chomp;
	my $lineSepPos = index($_, "\n");
	my $header = substr($_,0,$lineSepPos);
	if($header){
		print(">", $header, " (reverse-complemented)\n");
		my $sequence = reverse(substr($_,$lineSepPos));
		# see http://shootout.alioth.debian.org/u32/performance.php?test=revcomp#about
		# for ambiguity codes and translation
		$sequence =~ tr/ACGTUMRWSYKVHDBNacgtumrwsykvhdbn\n/TGCAAKYWSRMBDHVNtgcaakywsrmbdhvn/d;
		for(my $pos = 0; $pos < length($sequence);$pos += 60){
			print(substr($sequence, $pos, 60),"\n");
		}
	}
}