感谢您的评论,我现在设法使用此代码(对于 RegEx [AGT][AG]AC[ACT])手动为特定的 RegEx 执行此操作(直到我提高我的 python 技能):
import itertools
def create_pots():
af = []
bf = []
cf = []
df = []
ef = []
gf = []
a = list(itertools.combinations('AGCT', 3))
b = list(itertools.combinations('AGCT', 2))
c = list(itertools.combinations('AGCT', 1))
d = list(itertools.combinations('AGCT', 1))
e = list(itertools.combinations('AGCT', 3))
for i in range(len(a)):
af.append('['+ ''.join(a[(i-1)]) + ']')
for i in range(len(b)):
bf.append('['+''.join(b[(i-1)])+']')
for i in range(len(c)):
cf.append(''.join(c[(i-1)]))
for i in range(len(d)):
df.append(''.join(d[(i-1)]))
for i in range(len(e)):
ef.append('['+''.join(e[(i-1)])+']')
g = list(itertools.product(af, bf, cf, df, ef))
for i in range(len(g)):
gf.append(''.join(g[(i-1)]))
gf.remove('[AGT][AG]AC[ACT]')
return gf
这将返回与我类似的所有可能的 RegEx 列表,例如:
gf = ['[ACT][GT]CC[ACT]', '[GCT][CT]TT[GCT]', '[GCT][CT]TT[AGC]', '[GCT][CT]TT[AGT]', '[GCT][CT]TT[ACT]', '[GCT][CT]TA[GCT]', '[GCT][CT]TA[AGC]', '[GCT][CT]TA[AGT]', '[GCT][CT]TA[ACT]', '[GCT][CT]TG[GCT]', '[GCT][CT]TG[AGC]', '[GCT][CT]TG[AGT]'....]