[cctbxbb] Tidy up CCTBX

Graeme.Winter at diamond.ac.uk Graeme.Winter at diamond.ac.uk
Tue Jan 23 00:46:44 PST 2018


Dear All,

Turns out that the assert that libtbx has no dependencies is not strictly true:

https://github.com/cctbx/cctbx_project/blob/master/libtbx/phil/tst_interface.py


# XXX sorry about the cross-import here, but I really need to test this on
# something large and complex
def exercise_2 (verbose=False) :
  if (not libtbx.env.has_module(name="phenix")):
    print "phenix module not available: skipping advanced tests"
    return
  from phenix.refinement import runtime
  import iotbx.phil
  from time import time
  phil_str = """
refinement.pdb_interpretation.secondary_structure.protein {
  helix {
    selection = "chain A and resseq 10:20"
  }
  helix {
    selection = "chain A and resseq 30:40"
  }
  helix {
    selection = "chain A and resseq 50:60"
  }
}
“""

around line 190

Maybe the down tools and disentangle has more merit than appears at first glance…

Best wishes Graeme



On 22 Jan 2018, at 18:29, Dr. Robert Oeffner <rdo20 at cam.ac.uk<mailto:rdo20 at cam.ac.uk>> wrote:

Hi Graeme and others,

Thank you for your replies. I was not aware of all the dependencies between the various modules within the cctbx.
As I don't know much more about the cctbx than other developers I am not sure what the best course of action would be. Here are some random thoughts.

Probably never gonna happen but, ideally a code freeze for 2 or 3 weeks stopping anyone from amending or adding code to the cctbx could be spent on disentangling modules from one another and the cctbx.

I agree that there appear to be some other projects that do not belong to the cctbx. For instance, I think fable was conceived by Ralf as a one time conversion tool of F77 code to C++ code. Not sure if it is used anymore.

As for pip install ability, yes that sounds like a good idea to achieve if it is done from the lowest level first, i.e. the libtbx submodule.

Documenting how to build derived projects using the CCTBX should encourage people not to add unrelated code into the cctbx. Although SConscripts are familiar to many of us, to others SConscript or bootstrap are quite alien and opaque ways of building from sources.

cheers,


Rob


-----Original Message----- From: Graeme.Winter at diamond.ac.uk<mailto:Graeme.Winter at diamond.ac.uk>
Sent: Monday, January 22, 2018 8:58 AM
To: cctbxbb at phenix-online.org<mailto:cctbxbb at phenix-online.org>
Cc: rjr27 at cam.ac.uk<mailto:rjr27 at cam.ac.uk>
Subject: Re: [cctbxbb] Tidy up CCTBX

Hi Rob

More thinking on this one, following from a little conversation over the weekend at this end

If we were looking to be able to package cctbx in a more Pythonic manner - i.e. to allow pip install - would it make sense to start at the bottom rather than at the top? i.e. libtbx - which is pure Python with deliberately no dependencies - would be a good place to start? The lower level code is also more static so a safer candidate for pip installing compared with some of the more rapid changing things…



More information about the cctbxbb mailing list