Biopython의 Restriction 클래스를 사용하여 in silico 제한 사항 소화를 수행하고 있습니다. 특정 효소로 특정 서열을 소화시키기 위해서는 .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)
나는 내가 필요로하는 효소에 조건을 적용한다. 이것은 일련의 코드 라인을 차지하며 비효율적입니다. 가능한 모든 효소에 대한 Restrictions 세트의 회원을 검색 할 수 있기를 바랍니다 .AllEnzymes. 이런 식으로 뭔가가 :
if RS in Restriction.AllEnzymes:
digestTuble = Restriction.RS.catalyze(this_seq)
else:
print('Please type in enzyme name correctly')
이 문제는 파이썬이 동일시하지 않는다는 것입니다 :
RS = "EcoRI"
digestTuple = Restriction.RS.catalyze(this_seq)
digestTuple = Restriction.EcoRI.catalyze(this_seq)
으로는 효소와 관련된 문자열 이름을 사용하려고 따라와 실제로 적절한 메소드를 호출하지 않습니다.
모든 가능한 효소를 검색하는 단일 조건을 사용하여이 방법을 호출 할 수있는 방법이 있습니까?
아마도 Invoking a method by its name과 비슷하지만 파이썬에서는 무엇인가요?
이 질문과 관련된 기술 문구는 다소 혼란 스럽기 때문에 문제를 정확하게 설명하지는 못했습니다. 불만은 어떤 명확한 질문에도 행복하게 대답합니다.
감사합니다
http://stackoverflow.com/questions/17734618/dynamic-method-call-in-python-2-7-using-strings-of-method -names/17734692 # 17734692 아마도? –