怎么匹配这样一个CCAATT?

怎么匹配这样一个CCAATT?

怎么匹配这样一个CCAATT,并且容许:
其中至多发生一个碱基替代到其他碱基,例如:变成GCAATT,CGAATT,CCAAGT等等
怎么来匹配这样一个模式~~~~~~~~

谢谢~谢谢

容许其中之多发生一个替代到其他碱基


没看懂
重新更改~~~~了点~~
应该能看懂~~~~~~



QUOTE:
原帖由 wubingran 于 2008-9-3 11:58 发表
重新更改~~~~了点~~
应该能看懂~~~~~~

没学过生物,不知道你说的“碱基”是啥。

是不是就是说G可以替换C和T,不能替换A。
/^{(C|.)CAATT|C(C|.)AATT|CC(A|.)ATT|CCA(A|.)TT|CCAA(T|.)T|CCAAT(T|.)}$/;

猜得,看看可是你想要得
可以这样做

[Copy to clipboard] [ - ]
CODE:
my $base = "CCAATT";

然后自己写一个subroutine产生各种可能的情况(跟$base差一个碱基)
然后据此产生一个regex进行匹配


QUOTE:
原帖由 forlorngenius 于 2008-9-3 12:19 发表
/^{(C|.)CAATT|C(C|.)AATT|CC(A|.)ATT|CCA(A|.)TT|CCAA(T|.)T|CCAAT(T|.)}$/;

猜得,看看可是你想要得

首先表示谢谢~~~~~~~你这个很有参考价值~~~~
但存在一个小小的bug~~~~就是在字符串搜索中,往往它只搜索到一个匹配的就不搜了~~~
也就是因为“|”这个“或”,在搜索的时候,他只要搜索到一个这样的motif就会返回,造成后面的也满足的motif没有搜索到~~~~~

这个bug怎么解决~~~?~~~

再次谢谢~~~~~~
在搜索的时候,他只要搜索到一个这样的motif就会返回,造成后面的也满足的motif没有搜索到~~~~~


这句没理解 。
你说要达到什么样的效果吧
就是搜索到字符串中所有的~~motif~~~
例如:$a="ACAATTTTTTCCAATTAAAAA";
不仅要搜索到ACAATT
也要搜索到CCAATT
$a="ACAATTTTTTCCAATTAAAAA";
if ($a=~/(C|.)CAATT/g) {
        print "$&\n";
}

输出结果:
ACAATT

而我希望看到ACAATT CCAATT