以下は、fasta fileA の内容です。
>1
PLAARRPRRGKSLAGFESLACSFPVVSRGFLASRSARSLSSEGGTMPDNRQ
PRNRQPRIRSGNEPRSAPAMEPDGRGAWAHSRAALDRLEKLLRCSRCTNIL
REPVCLGGCEHIFCSNCVSDCIGTGCPVCYTPAWIQDLKINRQLDSMIQL
>2
PLWRPAVPDAGRARPVWSRWSAASLWFLKASLLPALRGAFHPKAGRCRIIGS
RGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF*E
SLCV*EDVSTSSVVIV*VTALELDVQCVTPRPGYKT*R*ID
>3
TPPLWRPAVPDAGRAWPVSSRWPAASRWFPEASLLPALRGAFHPKAGRCRII
GSRGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF
ここで、入力として fileA を取得し、1 と 2、次に 1-3 の間に存在するミスマッチを見つけ、それらの間のヌクレオチドの変化も見つける必要があります。これまでにプログラムを作成しましたが、fileA を入力として取りません。親切に助けて
私の問題は、ファイル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;
}