Wednesday, January 20, 2010

BioJava Hackathon - Day 3 - Structure Modules

Today the main new feature in the structure modules is the release of a Java port of the Combinatorial Extension (CE) algorithm. This contains both a version of the algorithm that can be run from command line, as well as a GUI to view the results and trigger custom alignments. Essentially this is what is available from the RCSB website from:

About the generic design for Model View Control for 3D viewers, an unsolved problem is currently how to deal with selections. Selecting ranges, chains or atoms in proteins is done using a scripting interface at PyMol or Jmol. Shall we have a scripting interface (based on the syntax of one of these) or shall we have multiple select methods that accept various arguments? Jules Jacobsen wrapped the Jmol-Biojava interface using the new interface definitions for the MVC.


  1. For selections, I have found GlazedLists ( to be a pretty efficient selection model implementation.

    You may implement a Matcher with JSR 223 to support various scripting languages (JPython, JRuby, etc). Just throw some useful objects into the script context and let the users write the selectors.

    I did this in a recent viz project for work, and will be adding something similar to my FOSS project in the near future.

  2. The problem is not so much how to deal with the selection internally (e.g. as a BitSet, referencing Atom objects by their index number) but rather how to communicate what to select. Probably we will have a PDBResidueNumber object that can specify Model, Chain, ResidueNumber and Insertion Code for a residue.