Skip to content

GALigandDock shows poor compatibility with ref2015 #506

@vmullig

Description

@vmullig

The ref2015 energy function, not beta, remains the default Rosetta energy function. GALigandDock shows poor compatibility with it, though:

  • GALigandDock crashes with an error about lk_ball_wtd if ref2015 is used naively.
  • If ref2015 is used with lk_ball_wtd disabled,GALigandDock runs, but crashes (with a segfault in release mode, a map out-of-range error in debug mode) if any ligand or residue containing sulphur (e.g. cysteine or methionine) is involved in the docking.
  • There is no way to use the beta energy function selectively for the GALigandDock step of a script: the -beta flag sets global state that results in untested behaviour with ref2015.
  • Conversely, for other steps, there is a cost to using the beta energy function. For mixed-chirality peptide modelling (at least, for peptide structure prediction), beta yields worse performance than ref2015. It hasn't been extensively tested for mixed-chirality peptide design. This prevents GALigandDock from being used reliably in peptide design scripts.

It would be nice to remove the obstacles to using GALigandDock with ref2015. The crash with sulphur comes at line 1817 of GridScorer.cc:

score_lk_ij = core::scoring::electron_density::interp_spline(coeffs_lkball_[ -atmtype_ij ], idxXj, true);

The coeffs_lkball_ map contains no entry for atmtype_ij when this refers to the atom type for the sulphur of cysteine (no map key "-23") if -beta has not been set on the commandline. Note that this presumably doesn't need to be computed at all when lk_ball_wtd and lk_ball aren't used, but it is anyways. Even a check for whether the key is in the map would be an improvement.

Alternatively, making the effects of the -beta flag local to the scoring function rather than global would be a big improvement. Rosetta has far too much global state.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions