/usr/lib/python2.7/dist-packages/chempy/solvate.py is in pymol 1.7.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #A* -------------------------------------------------------------------
#B* This file contains source code for the PyMOL computer program
#C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific.
#D* -------------------------------------------------------------------
#E* It is unlawful to modify or remove this copyright notice.
#F* -------------------------------------------------------------------
#G* Please see the accompanying LICENSE file for further information.
#H* -------------------------------------------------------------------
#I* Additional authors of this source file include:
#-*
#-*
#-*
#Z* -------------------------------------------------------------------
from chempy.models import Indexed
from chempy import water_amber,water_residues
from chempy import hetatm,path,io
import os
import copy
def fill_box(area,water=None,box=18.774349):
if not water:
test_path = path + "water.pdb"
if os.path.exists(test_path):
water= io.pdb.fromFile(test_path)
water= hetatm.generate(water,forcefield=water_amber,
topology=water_residues)
if not water:
raise RunError('Need water structure file.')
solv_box = Indexed()
half = box/2
x = area[0][0]
c = 0
while x<area[1][0]:
y = area[0][1]
while y<area[1][1]:
z = area[0][2]
while z<area[1][2]:
tmp = copy.deepcopy(water)
lr = ''
for a in tmp.atom:
if a.resi!=lr:
c = c + 1
lr = a.resi
a.resi = str(c)
b = a.coord
b[0] = b[0] + x + half
b[1] = b[1] + y + half
b[2] = b[2] + z + half
print " "+__name__+": filling box at %8.3f %8.3f %8.3f\n" % (x,y,z)
solv_box.merge(tmp)
z = z + box
y = y + box
x = x + box
return solv_box
|