import re
import sys
import os
import xmltodict
if len(sys.argv) < 2:
message = '\n Get 7 TM pdb files from a GPCR PDB. \n\n Usage: '+sys.argv[0] + ' [Input csv file with TM info] \n' + ' Example: ' + sys.argv[0] + ' pdbtms7.csv\n' + ' Output Files: pdb_2rh1A_tm1.pdb ... pdb_2rh1A_tm7.pdb'
print (message)
exit()
csvFile=sys.argv[1]
f = open (csvFile,'r')
k = 0
data = f.readlines()
for linedata in data:
line=linedata.strip()
letters = line.split(',')
print (letters)
pdbId=letters[0]
chain=letters[1]
numTMs=int(letters[3])
for i in range(numTMs):
j=((2*i)+4)
k=((2*i)+5)
# print(i,j,k)
print(i+1,letters[j],letters[k])
dump= 'pdb_'+ pdbId + chain + '_tm' + str(i+1) +'.pdb'
pdbFile=pdbId+'.pdb'
wgetcom='wget https://files.rcsb.org/view/'+pdbFile+' -O '+pdbFile
os.system(wgetcom)
p = open (pdbFile,'r')
data =p.readlines()
g = open(dump,'w')
for linedata in data:
line=linedata.strip()
words = line.split()
if (words[0]=='ATOM'):
words[5]=int(line[22:26].strip())
if(words[5] in range(j,k+1)):
g.write(linedata)
g.close()
f.close()
该代码应另外创建7个文件作为输出;该代码实际上创建了它们,但没有在文件中写入任何内容,因此有任何方法可以解决此问题。
非常感谢!
答案 0 :(得分:1)
您正在执行以下两项操作之一,要么是在不执行任何操作的情况下覆盖转储文件,要么是不刷新数据。 我非常怀疑它是否会被覆盖,因为您声明代码正在创建7个单独的文件。但是,我们无权访问您用作输入的cvs文件。 可能的答案是,在创建文件后,没有数据被写入磁盘。这是有关如何执行此操作的示例。
data =p.readlines()
with open(dump,'w') as g:
for linedata in data:
line=linedata.strip()
words = line.split()
if (words[0]=='ATOM'):
words[5]=int(line[22:26].strip())
if(words[5] in range(j,k+1)):
g.write(linedata)
g.flush()
os.fsync()
f.close()