синтаксическая ошибка при записи переменной в скрипт - PullRequest
0 голосов
/ 06 октября 2018
dump.pbd='pdb' + pdbFile + '_' + 'res' + residMin + '_' residMax + '.pdb'
the program keep giving me syntax error when I run it.

import re
import sys
import os
import time
from sys import argv
import xmltodict

if len(sys.argv) < 3:
    message = '\n Get protein file in the form of pdf file from pdb website. \n\n Usage: '+sys.argv[0] + ' [4-letter PDBid] [resid range] \n' + ' Example: ' + sys.argv[0] + '  2rh1 53-71\n' + ' Output File: pdb2rh1_res53-71.pdb'
    print (message)
    exit()
pdbID=sys.argv[1]
residRange=sys.argv[2]
residData=residRange.split('-')
residMin=int(residData[0])
residMax=int(residData[1])
twoletter=pdbID[1:3]
xmlfile=pdbID + '.xml'
pdbgzfile=pdbID + '.pdb.gz'
pdbFile=pdbID+'.pdb'
dump.pbd='pdb' + pdbFile + '_' + 'res' + residMin + '_' residMax + '.pdb'
wgetcom='wget https://files.rcsb.org/view/'+pdbFile+' -O '+pdbFile
print(wgetcom)
os.system(wgetcom)

f = open (pdbFile,'r')
k = 0
rc = 0
data = f.readlines()
g = open (dump.pdb, 'w')
for linedata in data:
    line=linedata.strip()
    words = line.split()
    if(words[0] == 'ATOM'):
        k=k+1
        words[5]=int(line[22:26].strip())
        if(words[5] in range(residMin,residMax+1)):
            g.write(linedata)
            for i in words:
                if(i=='CA'):
                    rc = rc+1
print(rc)

код не работает, потому что он дает мне синтаксическую ошибку для строки номер 22, в которой указано dump.pbd = 'pdb' + pdbFile + '' + 'res' + остатокMin + ' remaMax + .pdb.не могли бы вы помочь мне с этим?

Большое спасибо за продвижение!

1 Ответ

0 голосов
/ 06 октября 2018

Вы забыли добавить знак +.

Эта строка должна работать: dump.pbd='pdb' + pdbFile + '' + 'res' + residMin + '' + residMax + '.pdb'

Должен быть знак + между '_' и residMax, так как это синтаксис строк объединения Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...