[Debichem-devel] Current status of pymol Debian/Ubuntu package
Michael Banck
mbanck at debian.org
Wed Jul 23 02:18:19 UTC 2008
Hi Warren,
this is an update on the current status of the pymol package in Debian
and Ubuntu.
The current stable releases of Debian and Ubuntu ship pymol-0.99rc6 and
pymol-1.0r2, respectively (Debian got last released in spring 2007,
Ubuntu in spring 2008).
I have just uploaded pymol-1.1 (congrats on the release, btw) to the
development branch of Debian, so we hope that the next Debian and Ubuntu
releases (both scheduled for fall) will ship pymol-1.1.
While doing this, I updated the package description. I couldn't really
find a good overview of pymol on http://pymol.sourceforge.net to my
surprise, so this is what I came up with (making it somewhat consistent
with other package description of similar packages in Debian):
****
PyMOL is a molecular graphics system targetted at medium to large
biomolecules like proteins. It can generate high-quality publication-ready
molecular graphics images and animations.
Features include:
* Visualization of molecules, molecular trajectories and surfaces
of crystallography data or orbitals
* Molecular builder and sculptor
* Internal raytracer and movie generator
* Fully extensible and scriptable via a python interface
File formats PyMOL can read include PDB, XYZ, CIF, MDL Molfile, ChemDraw,
CCP4 maps, XPLOR maps and Gaussian cube maps.
****
Do you think that is fine? Any more major features we should add to the
list?
Besides this, there are still a couple of patches we apply to pymol,
which you might want to review and possibly apply.
They are:
*** print some diff if a test suite script fails. Quite ugly, but
a bit more informational than just saying "it differs":
--- pymol-1.1/test/run.orig 2006-06-30 00:59:34.000000000 +0200
+++ pymol-1.1/test/run 2006-06-30 01:00:09.000000000 +0200
@@ -94,7 +94,8 @@
diffs = df.readlines()
df.close()
print " run_tests: "+ \
- postfx+" DIFFERS over about %d lines." % int(len(diffs)/2)
+ postfx+" DIFFERS over about %d lines:" % int(len(diffs)/2)
+ print diffs
else:
print " run_tests: "+postfx+" is missing."
*** Store povray generated files as .png (not sure this is still needed):
--- pymol-1.1/modules/pymol/povray.py.orig 2006-06-30 01:02:06.000000000 +0200
+++ pymol-1.1/modules/pymol/povray.py 2006-06-30 01:03:42.000000000 +0200
@@ -17,7 +17,7 @@
import os
import traceback
- povray_exe = "povray"
+ povray_exe = "povray +FN"
def render_from_string(header,pov_inp,prefix,width,height,antialias):
r = None
*** Make Wizards->Demo demos work when installed as package:
--- pymol-1.1/examples/chempy/generate_amber.py 2004-01-03 23:06:05.000000000 +0100
+++ pymol-1.1/examples/chempy/generate_amber.py 2004-01-03 23:07:06.000000000 +0100
@@ -3,8 +3,9 @@
from chempy import io
from chempy import protein
from chempy import protein_amber99
+import os
-model= io.pdb.fromFile("../../test/dat/pept.pdb")
+model= io.pdb.fromFile("/usr/share/pymol/demo/pept.pdb")
model= protein.generate(model,forcefield=protein_amber99)
--- pymol-1.1/examples/chempy/generate_mmff.py 2004-01-03 23:06:05.000000000 +0100
+++ pymol-1.1/examples/chempy/generate_mmff.py 2004-01-03 23:07:06.000000000 +0100
@@ -4,6 +4,7 @@
from chempy import protein
from chempy import protein_mmff
from chempy import bond_mmff
+import os
#
#print 'normal'
@@ -13,7 +14,7 @@
#print 'c_terminal'
#protein_mmff.check_sum(protein_mmff.c_terminal)
-model= io.pdb.fromFile("../../test/dat/pept.pdb")
+model= io.pdb.fromFile("/usr/share/pymol/demo/pept.pdb")
model= protein.generate(model,forcefield=protein_mmff,bondfield=bond_mmff)
--- pymol-1.1/examples/devel/povray01.py 2004-01-03 23:06:05.000000000 +0100
+++ pymol-1.1/examples/devel/povray01.py 2004-01-03 23:07:06.000000000 +0100
@@ -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-1.1/modules/pymol/wizard/demo.py.orig 2007-07-05 11:53:39.000000000 +0200
+++ pymol-1.1/modules/pymol/wizard/demo.py 2007-07-05 12:19:42.000000000 +0200
@@ -231,7 +231,7 @@
try:
self.cmd.set("suspend_updates",1,quiet=1)
self.cmd.disable()
- self.cmd.load("$TUT/1hpv.pdb")
+ self.cmd.load("$PYMOL_DATA/demo/1hpv.pdb")
util.chainbow("1hpv",_self=self.cmd)
self.cmd.hide("everything","1hpv")
self.cmd.show("cartoon","1hpv")
*** Remove hash-bang from cex.py and apbs_tools.py, assuming they are not
supposed to get executed stand-alone:
--- pymol-1.1/modules/chempy/cex.py 2002-12-18 18:01:45.000000000 +0100
+++ pymol-1.1/modules/chempy/cex.py 2003-08-29 22:29:30.000000000 +0200
@@ -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-1.1/modules/pmg_tk/startup/apbs_tools.py 2007-12-15 15:49:33.000000000 +0800
+++ pymol-1.1/modules/pmg_tk/startup/apbs_tools.py 2007-12-15 15:51:53.000000000 +0800
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
# APBS TOOLS Copyright Notice
# ============================
*** Fix importing _cmd:
--- pymol-1.1/modules/pymol/__init__.py 2006-08-30 11:44:52.000000000 +0200
+++ pymol-1.1/modules/pymol/__init__.py 2006-08-30 11:48:51.000000000 +0200
@@ -350,7 +350,7 @@
_cmd.runpymol(block_input_hook) # only returns if we are running pretend GLUT
# from pymol.embed import wxpymol # never returns
- import _cmd
+ from pymol import _cmd
import cmd
def thread_launch(pa):
*** Fix usage of different python memory APIs:
--- pymol-1.1/contrib/modules/ExtensionClass.c-py152 2008-02-15 12:55:26.000000000 -0500
+++ pymol-1.1/contrib/modules/ExtensionClass.c-py152 2008-03-05 23:12:29.000000000 -0500
@@ -1589,7 +1589,7 @@
Py_DECREF(self->bases);
}
if (((PyExtensionClass*)self->ob_type) != self) Py_XDECREF(self->ob_type);
- PyMem_DEL(self);
+ PyObject_Del(self);
}
static PyObject *
@@ -2999,7 +2999,7 @@
UNLESS(base_dealloced)
{
Py_DECREF(self->ob_type);
- PyMem_DEL(self);
+ PyObject_Del(self);
}
PyErr_Restore(t,v,tb);
--- pymol-1.1/contrib/pyopengl/_glumodule.c 2008-02-15 12:55:27.000000000 -0500
+++ pymol-1.1/contrib/pyopengl/_glumodule.c 2008-03-05 23:12:29.000000000 -0500
@@ -117,7 +117,7 @@
{
if (op->quad)
gluDeleteQuadric(op->quad);
- PyMem_DEL(op);
+ PyObject_Del(op);
}
static PyObject *gluquadric_getattr(gluQuadricObject * op, char *name)
@@ -198,7 +198,7 @@
{
if (op->tess)
gluDeleteTess(op->tess);
- PyMem_DEL(op);
+ PyObject_Del(op);
}
static PyObject *glutesselator_getattr(gluTesselatorPyObject * op, char *name)
--- pymol-1.1/contrib/pyopengl/_openglmodule.c 2008-02-15 12:55:27.000000000 -0500
+++ pymol-1.1/contrib/pyopengl/_openglmodule.c 2008-03-05 23:12:29.000000000 -0500
@@ -175,7 +175,7 @@
#include "abstract.h"
-#define PyArray_ClearMemory(op, pitems) PyMem_DEL(pitems)
+#define PyArray_ClearMemory(op, pitems) PyObject_Del(pitems)
static int PyArray_AsDoubleArray(PyObject ** op, GLdouble ** pitems, int *pn)
{
@@ -3385,7 +3385,7 @@
for (i = 0; i < nitems; i++) {
PyTuple_SET_ITEM(params, i, PyFloat_FromDouble(items[i]));
}
- PyMem_DEL(items);
+ PyObject_Del(items);
#endif /* NUMERIC */
return (PyObject *) params;
}
--- pymol-1.1/contrib/pyopengl/openglutil.c 2008-02-15 12:55:27.000000000 -0500
+++ pymol-1.1/contrib/pyopengl/openglutil.c 2008-03-05 23:12:29.000000000 -0500
@@ -154,7 +154,7 @@
}
}
- PyMem_DEL(buf);
+ PyObject_Del(buf);
TIFFFlushData(tif);
TIFFClose(tif);
@@ -192,7 +192,7 @@
fwrite(pixelbuffer + i * width * 3, 1, width * 3, fp);
fclose(fp);
- PyMem_DEL(pixelbuffer);
+ PyObject_Del(pixelbuffer);
Py_INCREF(Py_None);
return Py_None;
@@ -332,7 +332,7 @@
fprintf(fp, "grestore\n");
fclose(fp);
- PyMem_DEL(pixels);
+ PyObject_Del(pixels);
Py_INCREF(Py_None);
return Py_None;
@@ -1972,7 +1972,7 @@
}
static void PyObjtrackball_dealloc(PyObjtrackball * self)
{
- PyMem_DEL(self);
+ PyObject_Del(self);
}
static int PyObjtrackball_print(PyObjtrackball * self)
--- pymol-1.1/contrib/pyopengl/openglutil.h 2008-02-15 12:55:27.000000000 -0500
+++ pymol-1.1/contrib/pyopengl/openglutil.h 2008-03-05 23:12:29.000000000 -0500
@@ -78,7 +78,7 @@
#include "abstract.h"
-#define PyArray_ClearMemory(op, pitems) PyMem_DEL(pitems)
+#define PyArray_ClearMemory(op, pitems) PyObject_Del(pitems)
static int PyArray_AsDoubleArray(PyObject ** op, GLdouble ** pitems, int *pn)
{
--- pymol-1.1/contrib/sglite/sglitemodule.c 2008-02-15 12:55:25.000000000 -0500
+++ pymol-1.1/contrib/sglite/sglitemodule.c 2008-03-05 23:12:29.000000000 -0500
@@ -229,7 +229,7 @@
static void DEL_SgOpsObject(T_SgOps *self)
{
- PyMem_DEL(self);
+ PyObject_Del(self);
}
@@ -829,7 +829,7 @@
static void DEL_EqMIxObject(T_EqMIx *self)
{
- PyMem_DEL(self);
+ PyObject_Del(self);
}
*** Use $PYMOL_DATA rather than $PYMOL_PATH for importing.py:
--- pymol-1.1/modules/pymol/importing.py.orig 2008-07-09 19:52:38.000000000 +0200
+++ pymol-1.1/modules/pymol/importing.py 2008-07-09 19:53:07.000000000 +0200
@@ -171,7 +171,7 @@
r = DEFAULT_ERROR
- tables = { 'cmyk' : "$PYMOL_PATH/data/pymol/cmyk.png",
+ tables = { 'cmyk' : "$PYMOL_DATA/cmyk.png",
'pymol' : 'pymol',
'rgb' : 'rgb' }
That's it, the other patches are pretty much Debian-specific.
Thanks again for developing this wonderful product,
Michael Banck, for the Debichem Team
More information about the Debichem-devel
mailing list