Ниже приводится содержимое файла fastaA:
>1
PLAARRPRRGKSLAGFESLACSFPVVSRGFLASRSARSLSSEGGTMPDNRQ
PRNRQPRIRSGNEPRSAPAMEPDGRGAWAHSRAALDRLEKLLRCSRCTNIL
REPVCLGGCEHIFCSNCVSDCIGTGCPVCYTPAWIQDLKINRQLDSMIQL
>2
PLWRPAVPDAGRARPVWSRWSAASLWFLKASLLPALRGAFHPKAGRCRIIGS
RGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF*E
SLCV*EDVSTSSVVIV*VTALELDVQCVTPRPGYKT*R*ID
>3
TPPLWRPAVPDAGRAWPVSSRWPAASRWFPEASLLPALRGAFHPKAGRCRII
GSRGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF
Теперь мне нужно взять файл A в качестве входных данных и выяснить наличие несоответствий между 1 и 2, а затем 1-3, а также выяснить изменение нуклеотидов между ними. Пока я написал программу, но она не принимает файл A в качестве входных данных. любезно помогите
Моя проблема в том, что мне нужно, чтобы файл A был задан в качестве входных данных, а последовательности содержат символ новой строки после каждых 51 нуклеотида, и моя программа учитывает символ новой строки также для обнаружения несоответствий.
Программа:
$a=<>;$b=<>;
@mul=("$a","$b");
for($i=0;$i<scalar(@mul)-1;$i++) {
$source=$mul[$i];
print "\n\nComparision of source: $mul[$i]\n";
print "------------------------------------";
for($j=$i+1;$j<scalar(@mul);$j++) {
$sample=$mul[$j];
print "\n$sample ";
print "\n------\n";
$t=mutate($source,$sample);
print $t;
}
}
sub mutate {
my ($s1,$s2)=@_;
$temp="";
for($k=0;$k<length($s1);$k++) {
$seq1=substr($s1,$k,1);
$seq2=substr($s2,$k,1);
if($seq1 ne $seq2) {
$temp.="[$seq1($k)/$seq2($k)]";
}
}
return $temp;
}