[BioPython] bio.pdb.mmcif does not exist

Michiel de Hoon mdehoon at c2b2.columbia.edu
Wed May 9 10:07:20 EDT 2007


Alex Lancaster wrote:
> P> The way the setup.py script prompts the user about building
> P> Bio.KDTree with a simple yes/no prompt is a simple short term
> P> solution.  I could certainly manage to make that change.
> 
> I would prefer to that it also be a command-line options so that a
> biopython build can be automated by a build system, when making RPM
> packages.  (Currently the Fedora package has to simulate the user
> typing "yes" to the Bio.KDTree question which is fragile).

I'm not too happy about adding a command-line option, so let me propose 
another solution.

A little-known secret in Python is that you can do autoconf-like 
configuration from a setup.py script. All the machinery is already there 
in Python, but unfortunately it's not well documented. However, it's 
fairly simple to use in practice -- way easier than autoconf.

What this amounts to is that before "python setup.py build", a user will 
also have to run "python setup.py config" to check if the flex library 
is present. If so, we can compile MMCIFlex during the build. If not, or 
if a user doesn't do the config step, assume that flex is not present 
and don't compile MMCIFlex.

As far as I can see, this solves the problem for the Fedora packaging. 
Furthermore, the config lets us catch potential problems with flex 
before we start compiling stuff.

A simple example of a configuration using setup.py can be found in a 
tiny statistics module I wrote a while ago. See:

http://bonsai.ims.u-tokyo.ac.jp/~mdehoon/software/python/Statistics/

in case you want to try this approach.

--Michiel.


More information about the BioPython mailing list