以下是FASTA的fileA的內容:如何把文件作爲輸入,並忽略新行字符
>1
PLAARRPRRGKSLAGFESLACSFPVVSRGFLASRSARSLSSEGGTMPDNRQ
PRNRQPRIRSGNEPRSAPAMEPDGRGAWAHSRAALDRLEKLLRCSRCTNIL
REPVCLGGCEHIFCSNCVSDCIGTGCPVCYTPAWIQDLKINRQLDSMIQL
>2
PLWRPAVPDAGRARPVWSRWSAASLWFLKASLLPALRGAFHPKAGRCRIIGS
RGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF*E
SLCV*EDVSTSSVVIV*VTALELDVQCVTPRPGYKT*R*ID
>3
TPPLWRPAVPDAGRAWPVSSRWPAASRWFPEASLLPALRGAFHPKAGRCRII
GSRGTGSRGSAPGTSLVPRPPWNRMVAVPGPTVAPRSTAWRSCCAARVVLTF
現在我需要採取的fileA作爲輸入,並找出1和2之間存在的不匹配然後1-3並找出它們之間的核苷酸變化。到目前爲止,我已經編寫了一個程序,但它並沒有將fileA作爲輸入。好心幫
我的問題是我需要的fileA給予作爲輸入,以及含有序列換行字符每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)[email protected]_;
$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;
}
你的問題是什麼呢? – Gabe 2011-03-07 06:46:31
要刪除您可以使用格格新行字符或使用正則表達式S/\ n // g^ – SAN 2011-03-07 06:58:56
@aki我嘗試使用格格太...但它不是得到安寧輸出..無法找出問題。 – supratim 2011-03-07 07:00:58