「view this page in B3 βῆτα server」

Revisions №59557

branch: master 「№59557」
Commited by: Vikram K. Mulligan
GitHub commit link: 「ee40d93a3045250f」 「№2272」
Difference from previous tested commit:  code diff
Commit date: 2017-06-25 03:17:08

Merge pull request #2272 from RosettaCommons/vmullig/ui/bundle_gui Add a GUI pilot app that permits interactive, realtime parametric design MOTIVATION AND DESCRIPTION This is primarily intended to be a fun demonstration of the power of a graphical user interface for Rosetta design. There are many tasks that we currently do in a very time-consuming and painful manner. One such task is the selection of parameter ranges for parametric design. Typically, a helical bundle designer must arbitrarily pick some parameter values, write a RosettaScripts XML file that calls the MakeBundle mover or the BundleGridSampler mover to generate geometry from those values, write the geometry out to disk as a PDB file, read the PDB file into a program like PyMOL, examine the output, and make decisions about how to vary the parameter values. One iteration might take a minute or so, a few milliseconds of which are spent actually computing the geometry. Wouldn't it be better if we could make that an interactive process? This application does just that, making it easy to select parameter values that one might then sample around in a large-scale, non-interactive sampling session. I've also added some extra bells and whistles that let you call the packer and the minimizer (to get a crude idea of the packed geometry possible with a given backbone), or to import additional non-parametric geometry (e.g. for small-molecule binder design) that you can drag and rotate independently from the parametric geometry. INTERNALS This pull request adds: - The app (which internally is calling the MakeBundle mover, PerturbBundle mover, PackRotamersMover, and MinMover). - New UI directories (note that these are not currently separate libraries, but could be made into separate libraries should the need arise) for: - Code that only links up to Rosetta's utility library. - Code that only links up to Rosetta's core.5 library. - Code that links up to Rosetta's protocols.7 library. - A new base class for a basic OpenGL pose-drawing widget. This is NOT meant to replace the work being done by @jadolfbr to create pose-drawing widgets. This is just a temporary standin. Its current features include: - Van der Waals sphere representations of a pose (but no sticks, ribbons, or anything else that's fancy). - Colouring by selection or by per-residue score. - Dragging to rotate, and right-dragging to zoom. - Tens of millisecond refresh on moderately-sized poses (i.e. realtime interactivity). - A derived OpenGL pose-drawing widget class specific for this app, which adds the ability to drag the nonparametric geometry separately from the parametric. I think that we can handle a lot of the specialization of the visualization widget by subclassing, and this demonstrates that idea. - Some specialized widgets built for Crick parameter manipulation. ADDITIONAL STUFF (done now): - Figure out what copyright text needs to go at the top of Rosetta ui files. It oughtn't be identical to the Rosetta copyright, I think, since this isn't strictly part of the Rosetta software suite. It should convey that it's covered by the same type of licence and all that, though. --> Update: Dennis at CoMotion has confirmed that we can just use the regular Rosetta copyright text, so I shall do that. - Figure out how to cover this with unit tests. --> Put off to a future pull request. - Fix bug when helix 1 is deleted and other helices copy from it.