Форум сайта python.su
0
Привет!
Имеется код состоящий из Н блоков ( ниже пример для 5 блоков)
# ANM conformer 1 conformer1 = parsePDB('./conf_pr/output0.pdb', model=1, subset='calpha') anm = ANM('b2ar 1') anm.buildHessian(conformer1, cutoff=8.0) anm.calcModes(100) writeNMD('b2ar_anm1.nmd', anm[:10], conformer1) # ANM conformer 2 conformer2 = parsePDB('./conf_pr/output1.pdb', model=1, subset='calpha') anm2 = ANM('b2ar 2') anm2.buildHessian(conformer2, cutoff=8.0) anm2.calcModes(100) writeNMD('b2ar_anm2.nmd', anm2[:10], conformer2) # ANM conformer 3 conformer3 = parsePDB('./conf_pr/output2.pdb', model=1, subset='calpha') anm3 = ANM('b2ar 3') anm3.buildHessian(conformer3, cutoff=8.0) anm3.calcModes(100) writeNMD('b2ar_anm3.nmd', anm3[:10], conformer3) # ANM conformer 4 conformer4 = parsePDB('./conf_pr/output3.pdb', model=1, subset='calpha') anm4 = ANM('b2ar 4') anm4.buildHessian(conformer4, cutoff=8.0) anm4.calcModes(100) writeNMD('b2ar_anm4.nmd', anm4[:10], conformer4) # ANM conformer 5 conformer5 = parsePDB('./conf_pr/output4.pdb', model=1, subset='calpha') anm5 = ANM('b2ar 5') anm5.buildHessian(conformer5, cutoff=8.0) anm5.calcModes(100) writeNMD('b2ar_anm5.nmd', anm5[:10], conformer5)
Отредактировано Александр Кошелев (Дек. 28, 2012 21:02:02)
Офлайн
63
Я не понимаю Вашей задачи, но проще всего использовать встроенную инструкцию exec…
Хотя можно реализовать в виде списка или словаря, но это более хлопотно…
Отредактировано 4kpt (Дек. 28, 2012 14:44:17)
Офлайн
173
Странный код и вопрос. Если conformer и anm дальше не используются:
for i in range(5): conformer = parsePDB('./conf_pr/output%s.pdb' % i, model=1, subset='calpha') n = i + 1 anm = ANM('b2ar %s' % n) anm.buildHessian(conformer, cutoff=8.0) anm.calcModes(100) writeNMD('b2ar_anm%s.nmd' % n, anm, conformer)
Отредактировано reclosedev (Дек. 28, 2012 14:59:45)
Офлайн
63
reclosedev
Да я навскидку… Сам не рискую его использовать. Только для вызова функций по именам, которые предварительно передаются как строки.
Отредактировано 4kpt (Дек. 28, 2012 15:32:18)
Офлайн
63
reclosedev
Кстати. Я считаю, что страшного ничего не случится (при использовании инструкции exec), если код не вынимается извне, а Вы сами его создаете в программе (ну как в данном случае).
Офлайн