我正在使用Biopython的Restriction类来执行计算机模拟限制消化。据我了解,为了用某种酶消化一定的序列,必须实现.catalyze()方法。
digestTuple = Restriction.EcoRI.catalyse(this_seq) # Or whichever enzyme is desired.
现在,我有条件地查看哪种酶被用作输入。例如:
RS = restrictionSite # From user
amb = IUPACAmbiguousDNA()
this_seq = Seq(sequence, amb) # sequence from user
if RS == 'EcoRI':
digestTuple = Restriction.EcoRI.catalyse(this_seq)
我对我预料需要的任何酶都施加了条件。这占用了很多代码行,并且效率很低。我希望能够搜索所有可能的酶Restriction.AllEnzymes的“限制”集中的成员资格。像这样的东西:
if RS in Restriction.AllEnzymes:
digestTuble = Restriction.RS.catalyze(this_seq)
else:
print('Please type in enzyme name correctly')
这个问题是python不等于:
RS = "EcoRI"
digestTuple = Restriction.RS.catalyze(this_seq)
和
digestTuple = Restriction.EcoRI.catalyze(this_seq)
因为它正在尝试使用与酶相关的字符串名称,但实际上并未调用正确的方法。
有没有一种方法可以使用搜索所有可能酶的单一条件来调用此方法?
也许像这样的东西通过名称调用方法但在python中呢?
关于这个问题的技术措辞对我来说有些混乱,因此我可能没有正确解释这个问题。不适地回答任何澄清的问题。
谢谢
使用getattr()
,例如:
RS = "EcoRI"
digestTuple = getattr(Restriction, RS).catalyze(this_seq)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句