Source code for openmicron.utils.gene_psf
[docs]
def gene_psf(psf_file_name,top):
"""
generate protein structure file for vmd
Parameters
----------
psf_file_name: str
The file name of PSF.
top: topology
The topology of OpenMM System.
"""
atoms = list(top.atoms())
bonds = list(top.bonds())
space = ' '
with open('%s.psf'%psf_file_name,'w') as psf:
psf.write('PSF\n')
# ATOM
#psf.write(space*6)
psf.write('%8d !NATOM\n'%len(atoms))
for i in range(len(atoms)):
psf.write('%8d%7d%7s%s%4s%5s%15d%14d%8d\n'%
(atoms[i].index+1,1,atoms[i].residue.name,
space*2,atoms[i].name,atoms[i].name,
0,100,0))
psf.write('\n')
psf.write('%8d !NBOND: bonds\n'%len(bonds))
for i in range(len(bonds)):
psf.write('%8d%8d'%(bonds[i][0].index+1,bonds[i][1].index+1))
if (i+1)%4==0:
psf.write('\n')
elif i==int(len(bonds)-1):
psf.write('\n')