Skip to content

Commit da7db9e

Browse files
authored
Merge pull request PolusAI#252 from jfennick/doc_update2
Doc update2
2 parents d5257fd + 89de864 commit da7db9e

23 files changed

+67
-67
lines changed

docs/advanced.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Here is an example that shows how to swap out constant pressure implementations.
66

77
```yaml
88
wic:
9-
default_backend: gromacs
10-
backends:
9+
default_implementation: gromacs
10+
implementations:
1111
gromacs:
1212
steps:
1313
- npt_gromacs.wic:
@@ -31,13 +31,13 @@ wic:
3131
steps:
3232
(2, npt.wic):
3333
wic:
34-
backend: amber
34+
implementation: amber
3535
```
3636
This will override the default implementation of `gromacs` and use `amber`. This really just means that `npt_amber.wic` is called instead of `npt_gromacs.wic` (If `--insert_steps_automatically` is enabled, the compiler will attempt to automatically insert the necessary file format conversions as determined below.)
3737

3838
## Subinterpreters
3939

40-
A portion of [`examples/gromacs/nvt.wic`](https://github.com/PolusAI/mm-workflows/blob/main/examples/gromacs/nvt.wic) in `mm-workflows` is shown below. You can see that the `in:` tag of gmx_energy is identical to the `config:` tag of cwl_watcher. This currently needs to be manually copy & pasted (and indented), but it should be possible to automatically do this in the future.
40+
A portion of [`examples/gromacs/nvt.wic`](https://github.com/PolusAI/mm-workflows/blob/main/examples/gromacs/nvt.wic) in `mm-workflows` is shown below. You can see that the `in:` tag of gmx_energy is identical to the `config:` tag of cwl_subinterpreter. This currently needs to be manually copy & pasted (and indented), but it should be possible to automatically do this in the future.
4141

4242
```yaml
4343
...
@@ -51,9 +51,9 @@ A portion of [`examples/gromacs/nvt.wic`](https://github.com/PolusAI/mm-workflow
5151
config: !ii
5252
terms: [Temperature]
5353
output_xvg_path: temperature.xvg
54-
# NOTE: explicit edges are not supported with cwl_watcher, and all filenames
54+
# NOTE: explicit edges are not supported with cwl_subinterpreter, and all filenames
5555
# must be globally unique!
56-
- cwl_watcher:
56+
- cwl_subinterpreter:
5757
in:
5858
#cachedir_path: /absolute/path/to/cachedir/ (automatically filled in by wic)
5959
file_pattern: '*nvt.edr' # Any strings that start with & or * need to be escaped in quotes
@@ -68,13 +68,13 @@ A portion of [`examples/gromacs/nvt.wic`](https://github.com/PolusAI/mm-workflow
6868
...
6969
```
7070

71-
Note that although gmx_energy appears before cwl_watcher in the YAML file, gmx_energy is independent of cwl_watcher in the DAG and thus not considered to be a previous step. We include gmx_energy simply to guarantee that the analysis gets run one more time in the main workflow, when all the files are known to be in their final state.
71+
Note that although gmx_energy appears before cwl_subinterpreter in the YAML file, gmx_energy is independent of cwl_subinterpreter in the DAG and thus not considered to be a previous step. We include gmx_energy simply to guarantee that the analysis gets run one more time in the main workflow, when all the files are known to be in their final state.
7272

7373
### Known Issues
7474

7575
Since the two runtimes are not linked, there is not currently a reliable way to determine if the previous steps have finished. Thus, to guarantee termination of the second runtime, we simply execute `cwl_tool` upto `max_times`. We also waive any guarantees about the files, so the subworkflow in the second runtime may of course fail for any number of reasons. Thus, we do not propagate speculative failures up to the main workflow.
7676

77-
The runtime system intentionally hides the working sub-directories of each step. Thus, we are forced to use a file watcher (hence the name cwl_watcher) recursively starting from `cachedir_path`. This is why all filenames used with cwl_watcher must be globally unique. (Actually, for technical reasons we cannot use a file watching library; we simply use a good old fashioned polling loop.)
77+
The runtime system intentionally hides the working sub-directories of each step. Thus, we are forced to use a file watcher recursively starting from `cachedir_path`. This is why all filenames used with cwl_subinterpreter must be globally unique. (Actually, for technical reasons we cannot use a file watching library; we simply use a good old fashioned polling loop.)
7878

7979
## Real-time plots
8080

docs/overview.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
Subworkflows are used extensively to create reusable building blocks.
66

7-
For example, a basic molecular dynamics workflow is composed of minimization, equilibration, and production steps, the equilibration step is composed of constant volume (NVT) and constant pressure (NPT) steps, and each of those are composed of primitive backend-specific steps. If we then want to do a stability analysis, we should be able to incorporate the molecular dynamics workflow as a black box, and we should only have to append the stability analysis subworkflow. See [here](https://github.com/PolusAI/mm-workflows/blob/main/examples/gromacs/tutorial.wic)!
7+
For example, a basic molecular dynamics workflow is composed of minimization, equilibration, and production steps, the equilibration step is composed of constant volume (NVT) and constant pressure (NPT) steps, and each of those are composed of primitive implementation-specific steps. If we then want to do a stability analysis, we should be able to incorporate the molecular dynamics workflow as a black box, and we should only have to append the stability analysis subworkflow. See [here](https://github.com/PolusAI/mm-workflows/blob/main/examples/gromacs/tutorial.wic)!
88

9-
* Multiple backends
9+
* Multiple implementations
1010

11-
There are often several backend engines that implement the same algorithm (e.g. amber / gromacs / namd). In principle, each backend ought to be exactly interchangeable, but in practice backends may randomly crash, etc. For this reason, we want the ability to arbitrarily switch backends at any step. Moreover, different users may be familiar with different backends, but we still want to compose together their workflows.
11+
There are often several implementation engines that implement the same algorithm (e.g. amber / gromacs / namd). In principle, each implementation ought to be exactly interchangeable, but in practice implementations may randomly crash, etc. For this reason, we want the ability to arbitrarily switch implementations at any step. Moreover, different users may be familiar with different implementations, but we still want to compose together their workflows.
1212

13-
For example, we should be able to compose system setup using amber/tleap, equilibration using namd, and metadynamics using gromacs. File format conversions should be automatically inserted between steps. This is not possible with other 'backend-independent' software packages which require a single backend to be fixed at the beginning and used throughout.
13+
For example, we should be able to compose system setup using amber/tleap, equilibration using namd, and metadynamics using gromacs. File format conversions should be automatically inserted between steps. This is not possible with other 'implementation-independent' software packages which require a single implementation to be fixed at the beginning and used throughout.
1414

1515
See [static dispatch](advanced.md#static-dispatch)
1616

examples/config_ci.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@
6565
"cg",
6666
"yank",
6767
// These (currently) always return success, so no point in running them.
68-
"cwl_watcher_analysis",
69-
"cwl_watcher_complex",
70-
"cwl_watcher_ligand",
71-
"cwl_watcher_protein",
68+
"cwl_subinterpreter_analysis",
69+
"cwl_subinterpreter_complex",
70+
"cwl_subinterpreter_ligand",
71+
"cwl_subinterpreter_protein",
7272
// Skip vs_demo_4 and run_diffdock so we don't accidentally DOS pdbbind.org.cn
7373
"vs_demo_4",
7474
"run_diffdock"

examples/docking/docking_stability.wic

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ wic:
3737
(3, prod.wic):
3838
wic:
3939
steps:
40-
(4, cwl_watcher_analysis.wic):
40+
(4, cwl_subinterpreter_analysis.wic):
4141
wic:
42-
backend: complex
42+
implementation: complex
4343
(3, analysis.wic):
4444
wic:
4545
steps:
4646
(1, analysis_realtime.wic):
4747
wic:
48-
backend: complex
48+
implementation: complex

examples/docking/vs_demo_2.wic

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,18 @@ wic:
178178
- output_crd_path: !& prod_complex.gro # overload prod.gro
179179
- output_trr_path: !& prod.trr
180180
- output_edr_path: !& prod.edr
181-
(4, cwl_watcher_analysis.wic):
181+
(4, cwl_subinterpreter_analysis.wic):
182182
wic:
183-
backend: complex
183+
implementation: complex
184184
(3, analysis.wic):
185185
wic:
186186
steps:
187187
(1, analysis_realtime.wic):
188188
wic:
189-
backend: complex
189+
implementation: complex
190190
(2, analysis_final.wic):
191191
wic:
192-
backend: complex
192+
implementation: complex
193193
(11, autodock_vina_rescore.wic):
194194
wic:
195195
inlineable: False

examples/docking/vs_demo_3.wic

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,18 +154,18 @@ wic:
154154
- output_crd_path: !& prod_complex.gro # overload prod.gro
155155
- output_trr_path: !& prod.trr
156156
- output_edr_path: !& prod.edr
157-
(4, cwl_watcher_analysis.wic):
157+
(4, cwl_subinterpreter_analysis.wic):
158158
wic:
159-
backend: complex
159+
implementation: complex
160160
(3, analysis.wic):
161161
wic:
162162
steps:
163163
(1, analysis_realtime.wic):
164164
wic:
165-
backend: complex
165+
implementation: complex
166166
(2, analysis_final.wic):
167167
wic:
168-
backend: complex
168+
implementation: complex
169169
(9, autodock_vina_rescore.wic):
170170
wic:
171171
inlineable: False

examples/docking/vs_demo_4.wic

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,18 +229,18 @@ wic:
229229
- output_crd_path: !& prod_complex.gro # overload prod.gro
230230
- output_trr_path: !& prod.trr
231231
- output_edr_path: !& prod.edr
232-
(4, cwl_watcher_analysis.wic):
232+
(4, cwl_subinterpreter_analysis.wic):
233233
wic:
234-
backend: complex
234+
implementation: complex
235235
(3, analysis.wic):
236236
wic:
237237
steps:
238238
(1, analysis_realtime.wic):
239239
wic:
240-
backend: complex
240+
implementation: complex
241241
(2, analysis_final.wic):
242242
wic:
243-
backend: complex
243+
implementation: complex
244244
(13, autodock_vina_rescore.wic):
245245
wic:
246246
inlineable: False

examples/gromacs/analysis_final.wic

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
wic:
2-
default_backend: protein
3-
backends:
2+
default_implementation: protein
3+
implementations:
44
protein:
55
steps:
66
- analysis_final_steps.wic:

examples/gromacs/analysis_realtime.wic

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
wic:
2-
default_backend: protein
3-
backends:
2+
default_implementation: protein
3+
implementations:
44
protein:
55
steps:
66
- analysis_realtime_protein.wic:

examples/gromacs/analysis_realtime_complex.wic

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# This causes the rmsd w.r.t. the last equil timestep to start at exactly zero,
44
# which distorts the comparison between the xray and equil cases.
55
# NOTE: Most paths can be inferred, but explicitly specify them anyway because
6-
# for cwl_watcher and so we can re-order steps in analysis.
6+
# for cwl_subinterpreter and so we can re-order steps in analysis.
77
steps:
88
- gmxselect: # NOTE: make_ndx does NOT work! (It erroneously selects all of the atoms.)
99
in:

0 commit comments

Comments
 (0)