[phenixbb] CCTBX questions

Nathaniel Echols nechols at lbl.gov
Mon Jul 21 10:34:12 PDT 2014

On Mon, Jul 21, 2014 at 10:05 AM, Morten Grøftehauge <
mortengroftehauge.work at gmail.com> wrote:

> I notice that cctbx.python comes with phenix but as far as I can tell from
> when I run it, look at imported modules with dir(), and compare to the
> documentation on Sourceforge the version that comes with phenix is
> abridged. And possibly not the same version as the sourceforge one but they
> probably are the same.

Define "abridged"?  We ship the complete CCTBX with Phenix, but not all
modules are configured - in particular the cudatbx module.  Also, if you're
using the 1.9 release, that's already nearly three months old and we've
made a huge number of changes since then (although I think the online docs
are now several weeks out of date).

Will it cause any problems with Phenix if I install cctbx from sourceforge?

The Python executables and modules will exist independently and not
cross-import, but you should keep in mind that the program names do overlap
significantly.  However, the "phenix" command (GUI) only exists in Phenix
itself, and all of the launchers distributed with Phenix also exist with
the version name appended, e.g. "phenix.pdbtools_1.9-1692" will be
available.  It's possible we're making some simplistic assumptions about
the command names being unambiguous when we're calling them as
subprocesses, however.  The safest approach is to not incorporate either
into your environment by default, e.g. call "phenix_env.sh" or
"setpaths.sh" (or csh equivalents) only as needed.

> Is it unnecessary?

It depends on what you want to do.  For simple scripting, what we
distribute with Phenix is more than adequate.  If you have larger projects
in mind - especially if you plan on distributing something - working from
SourceForge may be preferable, especially if you need the latest updates
(or, even better, want to contribute code back).  I will also be making
improved "cctbx-plus" builds (with various external dependencies pre-built)
available in the very near future.

Second question: Is there any better documentation anywhere? I found James
> Stroud's wiki but that's mainly for structure factor manipulation.

*deep sigh*

Not really, the formal documentation is poor.  This was less of a problem
when most of the people using CCTBX were in the same office but it is
growing increasingly problematic.  I try to add inline documentation
piecemeal when I get the chance but there are not a lot of practical how-to
documents; I mostly learned by reading existing code.  (And bugging Ralf,
which is no longer an option.)  I've been wanting to write a massive
tutorial for years but the NIH doesn't pay us for this stuff, unfortunately.

We do have some better docs for setting up the environment if you choose to
go that route instead of using the Phenix distribution; these are mostly
just internal right now but we could probably make them available to you.
 As far as actual functionality is concerned, my recommendations would be:

1. Read the old newsletter articles and related content (linked from

2. Look at the "examples" directory in each sub-module - these cover a lot
of the basic use cases.  (For instance,
mmtbx/examples/simple_command_line_cc.py gives you a template for most
programs that operate on models and maps - it encapsulates a lot of the
setup done in phenix.refine and friends.)

3. Join the "cctbxbb" mailing list and ask questions there.  The good news
is that although we're pretty sluggish at writing documentation, we're much
better at answering emails.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/phenixbb/attachments/20140721/03938ad4/attachment-0001.htm>

More information about the phenixbb mailing list