作者Andor (柠檬汁)
看板perl
标题Re: [请益] 两条dna的比较~~
时间Thu Oct 5 09:50:54 2006
※ 引述《sosoni (ㄚsoso)》之铭言:
: 假如有两条序列
: ATGCGATCGTACCTAG
: ATGGGATCGTACCTAC
: 那要如何把不同处找出@@
: 刚刚碰perl的新菜鸟@@"
: 知道的大大~~~可否帮解题一下呢!!
: 感恩阿~~~
设
$a = 'ATGCGATCGTACCTAG';
$b = 'ATGGGATCGTACCTAC';
若只要不同处之位置:
my $mask = $a ^ $b;
while ($mask =~ /[^\0]/g) {
print pos($mask)-1, "\n";
}
若要不同处之字元:
(以下程式片段适用於非Unicode,如需用於Unicode请自行修改。)
(my $mask = $a ^ $b) =~ tr/\0/\xFF/; # mask common characters
my $common = $a & $b & $mask; # a & b & (a ^ b) is contradiction (always 0)
print "a-b=", $a ^ $common, ", b-a=", $b ^ $common, " a&b=", $common;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 143.89.144.107
※ 编辑: Andor 来自: 143.89.144.107 (10/05 09:52)
1F:推 cutecpu:推$common 10/06 02:44