-
Notifications
You must be signed in to change notification settings - Fork 149
Description
The ref2015 energy function, not beta, remains the default Rosetta energy function. GALigandDock shows poor compatibility with it, though:
GALigandDockcrashes with an error aboutlk_ball_wtdifref2015is used naively.- If
ref2015is used withlk_ball_wtddisabled,GALigandDockruns, 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
betaenergy function selectively for theGALigandDockstep of a script: the-betaflag sets global state that results in untested behaviour withref2015. - Conversely, for other steps, there is a cost to using the
betaenergy function. For mixed-chirality peptide modelling (at least, for peptide structure prediction),betayields worse performance thanref2015. It hasn't been extensively tested for mixed-chirality peptide design. This preventsGALigandDockfrom 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.