Как включить цикл Python в командной строке Pymol?

Здесь сказано, что скрипт должен использоваться в командной строке pymol. Я хотел бы вывести много расстояний, используя цикл после прочтения этого. Но я получил сообщение об ошибке:

File "<string>", line 1
    for i in range(resi_total_n):
                                ^
SyntaxError: unexpected EOF while parsing

Мой код:

from pymol import cmd
mol_name='name'
resi=10 # the target residue number
resi_total_n=500 # the total residue number

f=open('dist.txt','w')
resi_n=0
for i in range(resi_total_n):
    resi_n += 1
    dst=cmd.distance('tmp',mol_name+'///'+str(resi)+'/ca',mol_name+'///'+str(resi_n)+'/ca') #the alpha carbon
    f.write("%8.3f\n"%dst)
f.close()

1 ответ

Здесь я нашел ответ:

При попытке заняться программированием лучше придерживаться Python. Сохраните следующее как script.py и используйте run script.py изнутри Пимоль или просто выпуск pymol script.py

Вам не нужно запускать скрипт как отдельный файл. Вы можете поместить цикл for в одну строку, например,

Когда вы запускаете этот код:

for c in chains:
    print c

Вы получаете такую ​​ошибку:

File "toplevel", line 1
for c in chains:
               ^

SyntaxError: unexpected EOF while parsing

но если вы напишете:

for c in chains: print(c)

дает результат

A
B
C
D
Другие вопросы по тегам