Skip to content

Developer notes

Valentina Sora edited this page Jun 25, 2020 · 2 revisions

Rosetta version: Rosetta 3.12

Last updated: 25/06/2020

General

  • An arbitrary definition of "family" of protocols is implemented, where protocols distinguished only by minor differences (i.e. the scoring function used) are grouped together. In this case, a single run function for the whole group can be implemented to avoid code redundancy, and differences in options used can be resolved inside the function.
  • An arbitrary definition of protocol "step" is also implemented since some protocols include some conceptually different stages that must be run independently (i.e. a step to preprocess the input structure before doing ΔΔG calculations, where the preprocessed structure may be used to run other ΔΔG calculations later). In these cases, the steps are implemented in separate run functions.

run functions

  • All run functions for Rosetta protocols/steps should return a subprocess.Popen instance instead of a simple return code, so that it is possible to have access to all the attributes of the instance if needed. They should also return the directory where the function was run. This allows for an easy traceback and logging of what happened during single runs.
  • In case of procedures that are designed to be run multiple times within a single run of the associated protocol (i.e. the Flex ddG being applied a number of times to generate a number of structures), the corresponding run function should run only one instance at a time.
  • All run functions should accept only one mutation (single or multiple) at a time. For procedures that must be run multiple times to generate a number of structures (i.e. Flex ddG), the definition of the mutation should include some reference to the specific instance (i.e. the structure) associated with that specific run.

Parallelization

  • The starmap() method is used for the Pool when multiprocessing so that the results are returned in the same order as the inputs, and multiple variable arguments can be passed to the callable.

Rosetta-related

Relax script

The relax script describing how the relaxation procedure should be run is MonomerRelax2019.txt, which is also the default, hard-coded one for the FastRelax runs within the cartesian_ddg application.

The choice of using the legacy relax script was previously made in order to be consistent with the one in use at the time of development and benchmarking of the cartddg protocols [^park2016], but since it is only possible to use it in relax but not in cartesian_ddg (because the selection is hard-coded in the latter) we decided to use the default Rosetta script also in relax for consistency between the two steps.

References

[^park2016]: Park, Hahnbeom, et al. "Simultaneous optimization of biomolecular energy functions on features from small molecules and macromolecules." Journal of chemical theory and computation 12.12 (2016): 6201-6212.

Clone this wiki locally