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.
The
ref2015energy function, notbeta, remains the default Rosetta energy function.GALigandDockshows poor compatibility with it, though:GALigandDockcrashes with an error aboutlk_ball_wtdifref2015is used naively.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.betaenergy function selectively for theGALigandDockstep of a script: the-betaflag sets global state that results in untested behaviour withref2015.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
GALigandDockwithref2015. The crash with sulphur comes at line 1817 ofGridScorer.cc:score_lk_ij = core::scoring::electron_density::interp_spline(coeffs_lkball_[ -atmtype_ij ], idxXj, true);The
coeffs_lkball_map contains no entry foratmtype_ijwhen this refers to the atom type for the sulphur of cysteine (no map key "-23") if-betahas not been set on the commandline. Note that this presumably doesn't need to be computed at all whenlk_ball_wtdandlk_ballaren'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
-betaflag local to the scoring function rather than global would be a big improvement. Rosetta has far too much global state.