在真核生物中,剪接mRNA具有三个关键特性:
所以基本上,mRNA序列应该以ATG开始,然后是任意数量的As,Cs,Ts或Gs,然后是TAA或TAG或TGA,然后是5或更多的As.
我的(python)正则表达式是这样的: ^ATG[ATCG]*T(AA|AG|GA)A{5}A*$
然而,这是匹配序列,其在poly(A)尾部之后具有另外的字符,就好像$字符未被识别一样.我究竟做错了什么?
有效示例:
ATGCTGATGATGATGATAGAAAAA
ATGTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Run Code Online (Sandbox Code Playgroud)
无效的示例:
ATGCTGATGXTGATGATAGAAAAA
TATGCTGATGXTGATGATAGAAAAA
ATGTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
Run Code Online (Sandbox Code Playgroud)
编辑(我的完整代码):
file = open('potential_mRNA.fasta')
alignment = SeqIO.parse(file, 'fasta')
mRNA_seqs = []
mRNA_pattern = r'^ATG[ATCG]*T(AA|AG|GA)A{5}A*$'
for mrna in alignment:
sequence = str(mrna.seq)
if re.search(mRNA_pattern, sequence):
mRNA_seqs.append(sequence)
Run Code Online (Sandbox Code Playgroud)