Editing and extending runs
The modularity of HADDOCK3 allows restarting halted runs from a certain step, extending previous runs with additional steps, and using successful steps as starting points for new runs. Let’s see some examples.
Restarting a run
Use the --restart flag to restart a HADDOCK3 run. For example, imagine you
start a run:
haddock3 my-run-config.cfg
Unfortunately, something went wrong in step 4 (the fourth module defined in the
configuration file). You want now to continue the run from where it stopped.
Use the --restart followed by N, where N is an integer corresponding to
the step you which to restart from. Remember, haddock steps are 0-indexed
(0, 1, 2, 3, …); so, --restart 3 is the fourth step.
haddock3 my-run-config.cfg --restart 3
Important: As soon you run the above command, The --restart option will
delete step folders from 3 onward (inclusive), that is, 3_, 4_,
..., will be deleted.
Restarting a run with modified parameters
You can profit from the --restart option described above to (re)run modules
with modified parameters. For example, if you noticed a parameter was set to
true when you wanted it to false, or if you wish to increase the sampling
for a given refinement module. Simply edit the configuration file modifying the
parameters for the modules you want to (re)run, in this case, from the fourth
module onward.
haddock3 my-edited-config.cfg --restart 3
Important: As soon you run the above command, The --restart option will
delete step folders from 3 onward (inclusive), that is, 3_, 4_,
..., will be deleted.
Restarting a run with additional steps
You can profit from the --restart option to add steps to a run. For example,
a run has five steps and is completed successfully. You now realize you want
to perform an additional refinement (mdref) followed by CAPRI evaluation
(caprieval) and FCC clustering (clustfcc). Add the parameters for those
modules to the original configuration file, keeping all the original
parameters unchanged, and run haddock:
haddock3 config-with-additional-step.cfg --restart 5
We use --restart 5 because the first new step is the sixth in the new
workflow: the five initial steps and three new steps. Remember --restart is
0-indexed.
Extend a run
You can extend a successful run with additional steps. For that, prepare a
configurtation file containing only the new steps you wish to execute on top of
the previously successful run. In these cases, you don’t need to define the
run_dir and molecules parameters in this new configuration file because
they will be ignored. You can define the other general parameters like
ncores, mode, etc. To extend a run with additional modules:
haddock3 new-steps.cfg --extend-run <run_dir>
Starting new runs from successful steps
You can also start an independent run from a successful step of a previous run. Consider the following successful run:
run1/
|--- 0_topoaa/
|--- 1_rigidbody/
|--- 2_caprieval/
|--- 3_seletop/
|--- 4_flexref/
|--- (etc...)
|--- data/
Now, you want to start a new independent run from the 4_flexref step.
First, you need to copy the step to a new run folder using our haddock3-copy CLI.
haddock3-copy -r run1 -m 0 4 -o run2
The above command copies steps 0_topoaa and 4_flexref to a new run2
directory. It also updates the path references in the step folders. Resulting in:
run2/
|--- 0_topoaa/
|--- 1_flexref/
|--- data/
|--- 0_topoaa/
|--- 1_flexref/
Do not use the bash cp command to emulate this operation because there
several internal aspects treated by haddock3-copy that wouldn’t be treated
by cp.
Note: If the new run uses CNS-dependent modules, you also need to copy
the folder corresponding to the initial topology creation (the topoaa module).
Second, create a configuration file for the new run containing only the
parameters of the new modules you wish to execute after the flexref. You
don’t need to define the run_dir and molecules parameters in this new
configuration file because they will be ignored. You can define the other
general parameters like ncores, mode, etc. For example:
ncores = 40
[emref]
tolerance = 20
ambig_fname = "path/to/air.tbl"
[caprieval]
reference_fname = "path/to/reference.pdb"
Following the example, to start the new run:
haddock3 my-new-config.cfg --extend-run run2
Additional considerations
You can now combine the functionalities explained above in many different variations.
Below is some quick Q&A regarding these options:
Can I copy run directories to different folders on my computer?
Yes. HADDOCK3 uses relative paths inside the run directory.
Can I copy run directories to different computers?
Yes, provided you have installed HADDOCK3 following the INSTALL
instructions in the two systems. You can copy a run directory (or some of its
steps) to a different computer/system and (re)run it using the --restart and
--extend-run options.
Modules are 0-indexed. Is this related to Python being 0-indexed also?
No. It is because we defined the topoaa module as zero.
Where can I find additional help?
You can find additional help by running the command: haddock3 -h and reading
the parameters’ explanations. Otherwise, ask us in the “issues”
forum.