open FA, "$ARGV[0]";
$/=">"; #以>进行全局分割
<FA>;
while(<FA>){
chomp;
next,if($_=~/^$/); #忽略空行
my($ID,$seq)=split /\n/, $_,2;
$seq=~s/\n//g;
@seq=split //, $seq; #转换成数组
$Molecular_weight=0;
foreach(@seq){
$Molecular_weight+=MW($_)/1000; #变成KD
}
print">$ID:$Molecular_weight KD\n";
}
#定以子函数
sub MW{
%molecular_weight=(
"A"=>71,
"R"=>157,
"N"=>114,
"D"=>114,
"C"=>103,
"E"=>128,
"Q"=>128,
"G"=>57,
"H"=>137,
"I"=>113,
"L"=>113,
"K"=>129,
"M"=>131,
"F"=>147,
"P"=>97,
"S"=>87,
"T"=>101,
"W"=>186,
"Y"=>163,
"V"=>99
);
$AA=shift @_;
$mv=$molecular_weight{$AA};
return $mv;
}
输入数据:

输出数据:

网友评论