Hi,
On Unix-like systems, stock pymol installs all images/data files/demo
stuff under /usr/lib/python2.x/site-packages/pymol/. I believe this is a
violation of the File Hierachy Standard (FHS) (well, at least its
spirit, I'm not sure about the letter), as only architecture-dependent
files should be under /usr/lib.
Thus, I've cleaned up my current patch for pymol-0.88, replacing
$PYMOL_PATH with $PYMOL_DATA_PATH and $CHEMPY_DATA_PATH, under the
observation that $PYMOL_PATH is 99% only needed in order for the
examples and other stuff to find data.
Currently, I put everything under data/{pymol,chempy) under
/usr/share/pymol and test/dat/*, data/tut/*, examples/devel/cgo03.py
into /usr/share/pymol/demo. This can of course be tuned at will.
One needs to set $PYMOL_DATA_PATH and $CHEMPY_DATA_PATH of course, I'm
doing this in a small wrapper script:
#!/bin/sh
# debian wrapper script for pymol
export PYMOL_DATA_PATH=/usr/share/pymol
export CHEMPY_DATA_PATH=/usr/share/chempy
python /usr/lib/python2.2/site-packages/pymol/__init__.py
I've attached the patch, do you think that would make sense for pymol
proper as well? If not, I'll have to keep maintaining it in the debian
package.
cheers,
Michael
--- pymol-0.88.orig/examples/chempy/generate_amber.py
+++ pymol-0.88/examples/chempy/generate_amber.py
@@ -4,7 +4,7 @@
from chempy import protein
from chempy import protein_amber99
-model= io.pdb.fromFile("../../test/dat/pept.pdb")
+model= io.pdb.fromFile("$PYMOL_DATA_PATH/pept.pdb")
model= protein.generate(model,forcefield=protein_amber99)
--- pymol-0.88.orig/examples/chempy/generate_mmff.py
+++ pymol-0.88/examples/chempy/generate_mmff.py
@@ -13,7 +13,7 @@
#print 'c_terminal'
#protein_mmff.check_sum(protein_mmff.c_terminal)
-model= io.pdb.fromFile("../../test/dat/pept.pdb")
+model= io.pdb.fromFile("$PYMOL_DATA_PATH/pept.pdb")
model= protein.generate(model,forcefield=protein_mmff,bondfield=bond_mmff)
--- pymol-0.88.orig/examples/devel/povray01.py
+++ pymol-0.88/examples/devel/povray01.py
@@ -4,7 +4,7 @@
if not ('pept' in cmd.get_names()):
cmd.delete('all')
util.ray_shadows('heavy')
- cmd.do('load $PYMOL_PATH/test/dat/pept.pdb')
+ cmd.do('load $PYMOL_DATA_PATH/pept.pdb')
cmd.do('set surface_quality=1')
cmd.do('show surface;hide lines;')
cmd.zoom('all',10)
--- pymol-0.88.orig/modules/chempy/__init__.py
+++ pymol-0.88/modules/chempy/__init__.py
@@ -205,7 +205,7 @@
elif os.environ.has_key('FREEMOL_MODULES'):
path = os.environ['FREEMOL_MODULES'] + '/chempy/'
else:
- path = ''
+ path = '$CHEMPY_DATA_PATH/'
# double check these values...
#hvd values obtained from http://www.webelements.com/ and recorded to their
--- pymol-0.88.orig/modules/chempy/cex.py
+++ pymol-0.88/modules/chempy/cex.py
@@ -1,4 +1,3 @@
-#! /usr/bin/env python
#A* -------------------------------------------------------------------
#B* This file contains source code for the PyMOL computer program
#C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific.
--- pymol-0.88.orig/modules/chempy/fragments/__init__.py
+++ pymol-0.88/modules/chempy/fragments/__init__.py
@@ -2,7 +2,7 @@
import chempy
from chempy import io
-path = chempy.path + 'fragments/'
+path = '$CHEMPY_DATA_PATH/fragments/'
def get(name):
return io.pkl.fromFile(path+name+'.pkl')
--- pymol-0.88.orig/modules/chempy/tinker/__init__.py
+++ pymol-0.88/modules/chempy/tinker/__init__.py
@@ -151,3 +151,4 @@
if os.path.exists(test_path):
params_path = test_path
+params_path = '$CHEMPY_DATA_PATH/tinker'
--- pymol-0.88.orig/modules/pymol/commanding.py
+++ pymol-0.88/modules/pymol/commanding.py
@@ -111,7 +111,7 @@
r = None
mode = int(mode)
if mode == 1: # just show PNG
- png_path = os.path.expandvars("$PYMOL_PATH/data/pymol/splash.png")
+ png_path = os.path.expandvars("$PYMOL_DATA_PATH/splash.png")
if os.path.exists(png_path):
cmd.do("_ cmd.load_png('%s',0,quiet=1)"%png_path)
r = 1
--- pymol-0.88.orig/modules/pymol/fitting.py
+++ pymol-0.88/modules/pymol/fitting.py
@@ -59,7 +59,7 @@
r = None
source = selector.process(source)
target = selector.process(target)
- mfile = os.path.expandvars("$PYMOL_PATH/data/pymol/matrices/"+matrix)
+ mfile = os.path.expandvars("$PYMOL_DATA_PATH/matrices/"+matrix)
if object==None: object=''
try:
lock()
--- pymol-0.88.orig/modules/pymol/wizard/demo.py
+++ pymol-0.88/modules/pymol/wizard/demo.py
@@ -80,10 +80,10 @@
try:
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
- cmd.do("cd $PYMOL_PATH")
+ cmd.do("cd $PYMOL_DATA_PATH")
cmd.delete("pept")
cmd.delete("pept_dist")
- cmd.load("test/dat/pept.pdb")
+ cmd.load("demo/pept.pdb")
cmd.show("sticks","(pept and not i;5:7)")
cmd.show("surface","(pept and i;5,6)")
cmd.show("mesh","(pept and i;1,11,12,13)")
@@ -103,7 +103,7 @@
if not cleanup:
cmd.disable()
cmd.set("suspend_updates",1,quiet=1)
- cmd.load("$PYMOL_PATH/test/dat/pept.pdb","rep1")
+ cmd.load("$PYMOL_DATA_PATH/demo/pept.pdb","rep1")
cmd.alter("rep1///1-5+8-13/","ss='S'")
cmd.cartoon("auto")
cmd.hide("everything","rep1")
@@ -181,7 +181,7 @@
-0.000086844, 0.000019042, -133.217041016,\
11.377667427, 21.768899918, 9.270449638,\
105.029335022, 169.626159668, 0.000000000 ))
- cmd.load("$TUT/1hpv.r3d","cgo1")
+ cmd.load("$PYMOL_DATA_PATH/demo/1hpv.r3d","cgo1")
# cmd.delete("cgo1")
# cmd.delete("cgo2")
# cmd.load("test/dat/pept.r3d","cgo")
@@ -195,10 +195,10 @@
def cgo(self,cleanup=0):
if not cleanup:
cmd.disable()
- cmd.do("cd $PYMOL_PATH")
+ cmd.do("cd $PYMOL_DATA_PATH")
try:
cmd.set("suspend_updates",1,quiet=1)
- cmd.do("run examples/devel/cgo03.py")
+ cmd.do("run demo/cgo03.py")
finally:
cmd.set("suspend_updates",0,quiet=1)
else:
@@ -236,7 +236,7 @@
try:
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
- cmd.load("$TUT/1hpv.pdb")
+ cmd.load("$PYMOL_DATA_PATH/demo/1hpv.pdb")
util.chainbow("1hpv")
cmd.hide("everything","1hpv")
cmd.show("cartoon","1hpv")
@@ -282,7 +282,7 @@
def roving(self,cleanup=0):
if not cleanup:
- cmd.load("$PYMOL_PATH/test/dat/il2.pdb")
+ cmd.load("$PYMOL_DATA_PATH/demo/il2.pdb")
cmd.remove("hydro")
cmd.disable()
cmd.enable("il2")
@@ -308,7 +308,7 @@
def roving_density(self,cleanup=0):
if not cleanup:
try:
- cmd.load("$PYMOL_PATH/test/dat/il2.pdb")
+ cmd.load("$PYMOL_DATA_PATH/demo/il2.pdb")
cmd.set("suspend_updates",1,quiet=1)
cmd.remove("hydro")
cmd.disable()
@@ -354,7 +354,7 @@
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
cmd.delete("1tii")
- cmd.load("$PYMOL_PATH/test/dat/1tii.pdb")
+ cmd.load("$PYMOL_DATA_PATH/demo/1tii.pdb")
cmd.hide("(1tii)")
cmd.show("cartoon","1tii")
cmd.zoom("1tii")
@@ -373,7 +373,7 @@
cmd.delete("pept")
cmd.delete("e_pot")
cmd.delete("e_lvl")
- cmd.load("$PYMOL_PATH/test/dat/pept.pkl")
+ cmd.load("$PYMOL_DATA_PATH/demo/pept.pkl")
cmd.hide("(pept)")
cmd.show("surface","pept")
cmd.set("coulomb_dielectric",80.0)
@@ -392,7 +392,7 @@
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
cmd.delete("trans")
- cmd.load("$PYMOL_PATH/test/dat/pept.pdb","trans")
+ cmd.load("$PYMOL_DATA_PATH/demo/pept.pdb","trans")
cmd.hide("(trans)")
cmd.show("surface","trans")
cmd.show("sticks","trans")
@@ -410,7 +410,7 @@
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
cmd.delete("ray")
- cmd.load("$PYMOL_PATH/test/dat/il2.pdb","ray")
+ cmd.load("$PYMOL_DATA_PATH/demo/il2.pdb","ray")
cmd.remove("(ray and hydro)")
cmd.hide("lines","ray")
cmd.show("spheres","ray")
@@ -433,7 +433,7 @@
cmd.set("suspend_updates",1,quiet=1)
cmd.disable()
cmd.delete("sculpt")
- cmd.load("$PYMOL_PATH/test/dat/pept.pdb","sculpt")
+ cmd.load("$PYMOL_DATA_PATH/demo/pept.pdb","sculpt")
cmd.hide("lines","sculpt")
cmd.show("sticks","sculpt")
cmd.show("spheres","sculpt")
--- pymol-0.88.orig/modules/pymol/wizard/mutagenesis.py
+++ pymol-0.88/modules/pymol/wizard/mutagenesis.py
@@ -27,8 +27,7 @@
Wizard.__init__(self)
- self.library = io.pkl.fromFile(os.environ['PYMOL_PATH']+
- "/data/chempy/sidechains/sc_library.pkl")
+ self.library =
io.pkl.fromFile("$CHEMPY_DATA_PATH/sidechains/sc_library.pkl")
self.status = 0 # 0 no selection, 1 mutagenizing
self.error = None