caddforge-docs 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- caddforge_docs/__init__.py +1 -0
- caddforge_docs/cli.py +20 -0
- caddforge_docs/server.py +124 -0
- caddforge_docs/site/404.html +2118 -0
- caddforge_docs/site/assets/_mkdocstrings.css +237 -0
- caddforge_docs/site/assets/images/favicon.png +0 -0
- caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js +16 -0
- caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js.map +7 -0
- caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
- caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
- caddforge_docs/site/assets/licenses/W3C-Software-and-Document-2015.txt +15 -0
- caddforge_docs/site/assets/licenses/autogrid-COPYING-GPL-2.txt +339 -0
- caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-COPYING-GPL-3.txt +674 -0
- caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-EXCEPTION.txt +73 -0
- caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-NOTICE.txt +24 -0
- caddforge_docs/site/assets/licenses/caddforge-opencosmors-COPYING.txt +674 -0
- caddforge_docs/site/assets/licenses/caddforge-opencosmors-LICENSE.txt +165 -0
- caddforge_docs/site/assets/licenses/caddforge-unidock-tools-LICENSE.txt +202 -0
- caddforge_docs/site/assets/licenses/clipboard-LICENSE.txt +19 -0
- caddforge_docs/site/assets/licenses/escape-html-LICENSE.txt +2 -0
- caddforge_docs/site/assets/licenses/focus-visible-LICENSE.txt +4 -0
- caddforge_docs/site/assets/licenses/fontawesome-LICENSE.txt +165 -0
- caddforge_docs/site/assets/licenses/fuzzaldrin-plus-LICENSE.txt +21 -0
- caddforge_docs/site/assets/licenses/lunr-LICENSE.txt +17 -0
- caddforge_docs/site/assets/licenses/material-LICENSE.txt +20 -0
- caddforge_docs/site/assets/licenses/material-design-color-LICENSE.txt +31 -0
- caddforge_docs/site/assets/licenses/material-shadows-LICENSE.txt +31 -0
- caddforge_docs/site/assets/licenses/mkdocs-material-LICENSE.txt +19 -0
- caddforge_docs/site/assets/licenses/mkdocs-material-extensions-LICENSE.txt +21 -0
- caddforge_docs/site/assets/licenses/mkdocs-section-index-LICENSE.txt +21 -0
- caddforge_docs/site/assets/licenses/mkdocstrings-LICENSE.txt +15 -0
- caddforge_docs/site/assets/licenses/mkdocstrings-python-LICENSE.txt +15 -0
- caddforge_docs/site/assets/licenses/octicons-LICENSE.txt +21 -0
- caddforge_docs/site/assets/licenses/preact-LICENSE.txt +19 -0
- caddforge_docs/site/assets/licenses/properdocs-LICENSE.txt +26 -0
- caddforge_docs/site/assets/licenses/pymdown-extensions-LICENSE.txt +113 -0
- caddforge_docs/site/assets/licenses/rxjs-LICENSE.txt +180 -0
- caddforge_docs/site/assets/licenses/simple-LICENSE.txt +30 -0
- caddforge_docs/site/assets/licenses/tiny-emitter-LICENSE.txt +19 -0
- caddforge_docs/site/assets/licenses/tslib-LICENSE.txt +12 -0
- caddforge_docs/site/assets/licenses/zeno-rocha-components-LICENSE.txt +22 -0
- caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css +1 -0
- caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css.map +1 -0
- caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
- caddforge_docs/site/core/cli/index.html +2446 -0
- caddforge_docs/site/core/concepts/index.html +2340 -0
- caddforge_docs/site/core/configuration/index.html +2300 -0
- caddforge_docs/site/core/index.html +2170 -0
- caddforge_docs/site/core/jobs-results/index.html +2315 -0
- caddforge_docs/site/core/plugins/index.html +2200 -0
- caddforge_docs/site/core/slurm/index.html +2562 -0
- caddforge_docs/site/development/ci-publishing/index.html +2345 -0
- caddforge_docs/site/development/contributing/index.html +2311 -0
- caddforge_docs/site/development/documentation/index.html +2380 -0
- caddforge_docs/site/development/index.html +2201 -0
- caddforge_docs/site/development/release-notes/index.html +2504 -0
- caddforge_docs/site/development/release-readiness/index.html +2333 -0
- caddforge_docs/site/development/security/index.html +2181 -0
- caddforge_docs/site/development/tool-authoring/index.html +2435 -0
- caddforge_docs/site/examples/index.html +2465 -0
- caddforge_docs/site/examples/manifest.json +158 -0
- caddforge_docs/site/examples/minimize/component_overrides.yaml +14 -0
- caddforge_docs/site/examples/minimize/ligand_only.yaml +13 -0
- caddforge_docs/site/examples/minimize/pipeline_docking.yaml +84 -0
- caddforge_docs/site/examples/minimize/pipeline_scatter.yaml +49 -0
- caddforge_docs/site/examples/minimize/pocket_free_shell_restrained.yaml +13 -0
- caddforge_docs/site/examples/minimize/pocket_restrained.yaml +13 -0
- caddforge_docs/site/examples/minimize/prepared_metal.yaml +14 -0
- caddforge_docs/site/examples/minimize/sidechains_free_backbone_fixed.yaml +13 -0
- caddforge_docs/site/examples/minimize/sidechains_free_backbone_restrained.yaml +13 -0
- caddforge_docs/site/examples/pipelines/descriptor-model-and-candidate-filter.yaml +44 -0
- caddforge_docs/site/examples/pipelines/dock-extract-and-minimize-poses.yaml +85 -0
- caddforge_docs/site/examples/pipelines/docking-screen-and-rescore.yaml +55 -0
- caddforge_docs/site/examples/pipelines/flexible-gnina-to-openbpmd-to-md-to-abfe.yaml +189 -0
- caddforge_docs/site/examples/pipelines/gnina-flexible-complex-artifacts.yaml +52 -0
- caddforge_docs/site/examples/pipelines/minimize-a-multi-pose-sdf.yaml +46 -0
- caddforge_docs/site/examples/pipelines/pose-level-md-selection.yaml +95 -0
- caddforge_docs/site/examples/pipelines/result-collection-and-diagnostics.yaml +55 -0
- caddforge_docs/site/examples/quickstart/diagnostics.yaml +8 -0
- caddforge_docs/site/examples/quickstart/index.html +2172 -0
- caddforge_docs/site/examples/quickstart/pipeline.yaml +23 -0
- caddforge_docs/site/examples/quickstart/run.py +18 -0
- caddforge_docs/site/examples/quickstart/run_pipeline.py +6 -0
- caddforge_docs/site/examples/quickstart/scores.csv +7 -0
- caddforge_docs/site/examples/quickstart/values.csv +31 -0
- caddforge_docs/site/examples/run_tool.py +40 -0
- caddforge_docs/site/examples/tools/datascience-csv-scatter.yaml +17 -0
- caddforge_docs/site/examples/tools/datascience-distribution-diagnostics.yaml +10 -0
- caddforge_docs/site/examples/tools/descriptors-ani-conformers.yaml +9 -0
- caddforge_docs/site/examples/tools/descriptors-ani-psa.yaml +9 -0
- caddforge_docs/site/examples/tools/descriptors-cluster-molecules.yaml +11 -0
- caddforge_docs/site/examples/tools/descriptors-phesa.yaml +7 -0
- caddforge_docs/site/examples/tools/docking-gnina.yaml +12 -0
- caddforge_docs/site/examples/tools/docking-idockya.yaml +8 -0
- caddforge_docs/site/examples/tools/docking-unidock.yaml +12 -0
- caddforge_docs/site/examples/tools/fep-openfe-abfe.yaml +53 -0
- caddforge_docs/site/examples/tools/fep-openfe-rbfe-septop.yaml +23 -0
- caddforge_docs/site/examples/tools/md-center-and-align.yaml +16 -0
- caddforge_docs/site/examples/tools/md-cluster-representative.yaml +16 -0
- caddforge_docs/site/examples/tools/md-extract-frames.yaml +17 -0
- caddforge_docs/site/examples/tools/md-fix-structure.yaml +20 -0
- caddforge_docs/site/examples/tools/md-grand.yaml +28 -0
- caddforge_docs/site/examples/tools/md-inducia.yaml +29 -0
- caddforge_docs/site/examples/tools/md-minimize.yaml +13 -0
- caddforge_docs/site/examples/tools/md-openbpmd.yaml +11 -0
- caddforge_docs/site/examples/tools/md-plain-md.yaml +28 -0
- caddforge_docs/site/examples/tools/ml-explore-classifier.yaml +5 -0
- caddforge_docs/site/examples/tools/ml-model-factory.yaml +32 -0
- caddforge_docs/site/examples/tools/ml-model-zoo.yaml +16 -0
- caddforge_docs/site/examples/tools/ml-pca.yaml +10 -0
- caddforge_docs/site/examples/tools/ml-simple-gp.yaml +17 -0
- caddforge_docs/site/examples/tools/qm-transfer-free-energy.yaml +11 -0
- caddforge_docs/site/explanation/references/index.html +2218 -0
- caddforge_docs/site/explanation/reproducibility/index.html +2306 -0
- caddforge_docs/site/explanation/third-party-notices/index.html +2599 -0
- caddforge_docs/site/getting-started/first-pipeline/index.html +2195 -0
- caddforge_docs/site/getting-started/first-workflow/index.html +2329 -0
- caddforge_docs/site/getting-started/index.html +2200 -0
- caddforge_docs/site/getting-started/installation/index.html +2541 -0
- caddforge_docs/site/gui/index.html +2267 -0
- caddforge_docs/site/gui/plugin-authoring/index.html +2280 -0
- caddforge_docs/site/gui/walkthrough/index.html +2181 -0
- caddforge_docs/site/how-to/jobs/index.html +2195 -0
- caddforge_docs/site/how-to/scatter/index.html +2193 -0
- caddforge_docs/site/how-to/troubleshooting/index.html +2429 -0
- caddforge_docs/site/index.html +2359 -0
- caddforge_docs/site/objects.inv +0 -0
- caddforge_docs/site/pipelines/artifacts/index.html +2314 -0
- caddforge_docs/site/pipelines/built-ins/index.html +2670 -0
- caddforge_docs/site/pipelines/examples/index.html +3186 -0
- caddforge_docs/site/pipelines/index.html +2164 -0
- caddforge_docs/site/pipelines/specification/index.html +2278 -0
- caddforge_docs/site/plugins/datascience/index.html +2405 -0
- caddforge_docs/site/plugins/descriptors/index.html +2609 -0
- caddforge_docs/site/plugins/docking/index.html +2480 -0
- caddforge_docs/site/plugins/fep/index.html +2508 -0
- caddforge_docs/site/plugins/index.html +2216 -0
- caddforge_docs/site/plugins/md/index.html +3795 -0
- caddforge_docs/site/plugins/ml/index.html +2815 -0
- caddforge_docs/site/plugins/qm/index.html +2309 -0
- caddforge_docs/site/plugins/version-matrix/index.html +2449 -0
- caddforge_docs/site/reference/api/index.html +4414 -0
- caddforge_docs/site/reference/index.html +2166 -0
- caddforge_docs/site/search/search_index.json +1 -0
- caddforge_docs/site/sitemap.xml +191 -0
- caddforge_docs/site/sitemap.xml.gz +0 -0
- caddforge_docs-0.3.0.dist-info/METADATA +158 -0
- caddforge_docs-0.3.0.dist-info/RECORD +152 -0
- caddforge_docs-0.3.0.dist-info/WHEEL +4 -0
- caddforge_docs-0.3.0.dist-info/entry_points.txt +2 -0
- caddforge_docs-0.3.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Advanced template: supply all prepared inputs and scientific runtimes.
|
|
2
|
+
version: 1
|
|
3
|
+
name: flexible-gnina-openbpmd-md-abfe
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
backend: slurm
|
|
7
|
+
registry_path: runs/job_registry.sqlite
|
|
8
|
+
job_name: flexible-gnina-openbpmd-md-abfe
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- id: gnina_flexible
|
|
12
|
+
tool: docking/gnina
|
|
13
|
+
config: configs/gnina_flexible.yaml
|
|
14
|
+
|
|
15
|
+
- id: retained_ligands
|
|
16
|
+
type: filter.tabular
|
|
17
|
+
inputs:
|
|
18
|
+
# One row per ligand; best_score is lower-is-better affinity.
|
|
19
|
+
table: gnina_flexible.scores
|
|
20
|
+
config:
|
|
21
|
+
filters:
|
|
22
|
+
- column: best_score
|
|
23
|
+
op: "<="
|
|
24
|
+
value: -12.0
|
|
25
|
+
columns: [ligand, best_score]
|
|
26
|
+
output_name: retained_ligands.csv
|
|
27
|
+
|
|
28
|
+
- id: top4_flexible_poses
|
|
29
|
+
type: filter.tabular
|
|
30
|
+
inputs:
|
|
31
|
+
# One row per generated flexible pose, with complex_file/protein_file/ligand_pose_file.
|
|
32
|
+
table: gnina_flexible.flexible_complexes_manifest
|
|
33
|
+
# Retain all poses belonging to ligands that passed the best-score cutoff.
|
|
34
|
+
ids: retained_ligands.filtered_table
|
|
35
|
+
config:
|
|
36
|
+
id_column: ligand
|
|
37
|
+
ids_column: ligand
|
|
38
|
+
group_by: ligand
|
|
39
|
+
sort_by: CNNscore
|
|
40
|
+
ascending: false
|
|
41
|
+
top_n_per_group: 4
|
|
42
|
+
columns:
|
|
43
|
+
- ligand
|
|
44
|
+
- pose_rank
|
|
45
|
+
- minimizedAffinity
|
|
46
|
+
- CNNscore
|
|
47
|
+
- complex_file
|
|
48
|
+
- protein_file
|
|
49
|
+
- ligand_pose_file
|
|
50
|
+
output_name: top4_flexible_poses.csv
|
|
51
|
+
|
|
52
|
+
- id: retain_top4_complexes
|
|
53
|
+
type: filter.molecules
|
|
54
|
+
inputs:
|
|
55
|
+
# OpenBPMD should receive the full protein-ligand complex PDB.
|
|
56
|
+
molecules: gnina_flexible.flexible_complexes
|
|
57
|
+
ids: top4_flexible_poses.filtered_table
|
|
58
|
+
config:
|
|
59
|
+
path_column: complex_file
|
|
60
|
+
|
|
61
|
+
- id: openbpmd_top4
|
|
62
|
+
tool: md/openbpmd
|
|
63
|
+
config: configs/openbpmd_pose.yaml
|
|
64
|
+
inputs:
|
|
65
|
+
# Bind each selected complex PDB to OpenBPMDConfig.complex_pdb_path.
|
|
66
|
+
complex_pdb_path: retain_top4_complexes.molecules
|
|
67
|
+
scatter:
|
|
68
|
+
by: complex_pdb_path
|
|
69
|
+
chunk_size: 1
|
|
70
|
+
outputs:
|
|
71
|
+
# results.collect resolves the sibling result_record.json from this path.
|
|
72
|
+
result_record: results_json
|
|
73
|
+
|
|
74
|
+
- id: collect_openbpmd
|
|
75
|
+
type: results.collect
|
|
76
|
+
inputs:
|
|
77
|
+
results: openbpmd_top4.result_record
|
|
78
|
+
# Preserve ligand, pose_rank, and the exact flexible artifact paths.
|
|
79
|
+
table: top4_flexible_poses.filtered_table
|
|
80
|
+
config:
|
|
81
|
+
metrics:
|
|
82
|
+
comp_score: metrics.comp_score
|
|
83
|
+
pose_score: metrics.pose_score
|
|
84
|
+
output_name: openbpmd_top4_metrics.csv
|
|
85
|
+
|
|
86
|
+
- id: best_openbpmd_pose
|
|
87
|
+
type: filter.tabular
|
|
88
|
+
inputs:
|
|
89
|
+
table: collect_openbpmd.table
|
|
90
|
+
config:
|
|
91
|
+
group_by: ligand
|
|
92
|
+
sort_by: comp_score
|
|
93
|
+
ascending: true
|
|
94
|
+
top_n_per_group: 1
|
|
95
|
+
columns:
|
|
96
|
+
- ligand
|
|
97
|
+
- pose_rank
|
|
98
|
+
- comp_score
|
|
99
|
+
- pose_score
|
|
100
|
+
- complex_file
|
|
101
|
+
- protein_file
|
|
102
|
+
- ligand_pose_file
|
|
103
|
+
- result_file
|
|
104
|
+
output_name: best_openbpmd_pose_per_ligand.csv
|
|
105
|
+
|
|
106
|
+
- id: retain_best_complexes
|
|
107
|
+
type: filter.molecules
|
|
108
|
+
inputs:
|
|
109
|
+
# Plain MD receives the full protein-ligand complex PDB for the selected pose.
|
|
110
|
+
molecules: gnina_flexible.flexible_complexes
|
|
111
|
+
ids: best_openbpmd_pose.filtered_table
|
|
112
|
+
config:
|
|
113
|
+
path_column: complex_file
|
|
114
|
+
|
|
115
|
+
- id: retain_best_ligands
|
|
116
|
+
type: filter.molecules
|
|
117
|
+
inputs:
|
|
118
|
+
# Plain MD needs the ligand-only SDF for non-standard ligand parameterization.
|
|
119
|
+
molecules: gnina_flexible.flexible_ligand_poses
|
|
120
|
+
ids: best_openbpmd_pose.filtered_table
|
|
121
|
+
config:
|
|
122
|
+
path_column: ligand_pose_file
|
|
123
|
+
|
|
124
|
+
- id: plain_md_10ns
|
|
125
|
+
tool: md/plain-md
|
|
126
|
+
config:
|
|
127
|
+
simulation_time_ns: 10.0
|
|
128
|
+
trajectory_filename: traj.xtc
|
|
129
|
+
output_dir_name: output
|
|
130
|
+
inputs:
|
|
131
|
+
system_pdb_path: retain_best_complexes.molecules
|
|
132
|
+
molecule_sdf_paths: retain_best_ligands.molecules
|
|
133
|
+
scatter:
|
|
134
|
+
# Scatter over complex PDBs. The matching ligand SDF is bound as a one-item
|
|
135
|
+
# molecule_sdf_paths list for the same shard.
|
|
136
|
+
by: system_pdb_path
|
|
137
|
+
chunk_size: 1
|
|
138
|
+
|
|
139
|
+
- id: center_align_md
|
|
140
|
+
tool: md/center-and-align
|
|
141
|
+
config:
|
|
142
|
+
center_selection: protein or resname LIG
|
|
143
|
+
keep_selection: protein or resname LIG
|
|
144
|
+
align_selection: protein and backbone
|
|
145
|
+
output_trajectory_filename: traj-centered.xtc
|
|
146
|
+
output_structure_filename: traj-centered.pdb
|
|
147
|
+
inputs:
|
|
148
|
+
# The plain-md trajectory uses the prepared solvated system topology.
|
|
149
|
+
topology_path: plain_md_10ns.prepared_structure
|
|
150
|
+
trajectory_path: plain_md_10ns.trajectory
|
|
151
|
+
scatter:
|
|
152
|
+
by: trajectory_path
|
|
153
|
+
chunk_size: 1
|
|
154
|
+
outputs:
|
|
155
|
+
centered_structure: output_structure
|
|
156
|
+
centered_trajectory: output_trajectory
|
|
157
|
+
|
|
158
|
+
- id: cluster_representative
|
|
159
|
+
tool: md/cluster-representative
|
|
160
|
+
config:
|
|
161
|
+
ligand_resname: LIG
|
|
162
|
+
cluster_selection: all
|
|
163
|
+
extract_selection: all
|
|
164
|
+
last_ns: 10.0
|
|
165
|
+
output_complex_filename: representative_complex.pdb
|
|
166
|
+
output_protein_filename: representative_protein.pdb
|
|
167
|
+
output_ligand_sdf_filename: representative_ligand.sdf
|
|
168
|
+
inputs:
|
|
169
|
+
topology: center_align_md.centered_structure
|
|
170
|
+
trajectory: center_align_md.centered_trajectory
|
|
171
|
+
# The ligand template preserves bond orders, hydrogens, and formal charges in the exported SDF.
|
|
172
|
+
ligand_template: retain_best_ligands.molecules
|
|
173
|
+
scatter:
|
|
174
|
+
by: trajectory_path
|
|
175
|
+
chunk_size: 1
|
|
176
|
+
|
|
177
|
+
- id: openfe_abfe
|
|
178
|
+
tool: fep/openfe-abfe
|
|
179
|
+
config: configs/openfe_abfe.yaml
|
|
180
|
+
inputs:
|
|
181
|
+
# ABFE receives separate files from the representative frame, not the original docked pose.
|
|
182
|
+
ligand_sdf: cluster_representative.ligand
|
|
183
|
+
protein_pdb: cluster_representative.protein
|
|
184
|
+
scatter:
|
|
185
|
+
# Scatter over ligand_sdf; the matching representative protein_pdb is bound by row order.
|
|
186
|
+
by: ligand_sdf
|
|
187
|
+
chunk_size: 1
|
|
188
|
+
outputs:
|
|
189
|
+
results: results_json
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Advanced template: supply all prepared inputs and scientific runtimes.
|
|
2
|
+
version: 1
|
|
3
|
+
name: gnina-flexible-artifacts
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
backend: local
|
|
7
|
+
registry_path: runs/job_registry.sqlite
|
|
8
|
+
job_name: gnina-flexible-artifacts
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- id: gnina_flexible
|
|
12
|
+
tool: docking/gnina
|
|
13
|
+
config: configs/gnina_flexible.yaml
|
|
14
|
+
|
|
15
|
+
- id: first_flexible_pose_per_ligand
|
|
16
|
+
type: filter.tabular
|
|
17
|
+
inputs:
|
|
18
|
+
# This is the flexible_complexes_manifest.csv emitted by Gnina.
|
|
19
|
+
table: gnina_flexible.flexible_complexes_manifest
|
|
20
|
+
config:
|
|
21
|
+
group_by: ligand
|
|
22
|
+
sort_by: pose_rank
|
|
23
|
+
ascending: true
|
|
24
|
+
top_n_per_group: 1
|
|
25
|
+
output_name: first_flexible_pose_per_ligand.csv
|
|
26
|
+
|
|
27
|
+
- id: retain_ligand_pose_sdfs
|
|
28
|
+
type: filter.molecules
|
|
29
|
+
inputs:
|
|
30
|
+
# Manifest-backed path collection from the ligand_pose_file column.
|
|
31
|
+
molecules: gnina_flexible.flexible_ligand_poses
|
|
32
|
+
ids: first_flexible_pose_per_ligand.filtered_table
|
|
33
|
+
config:
|
|
34
|
+
path_column: ligand_pose_file
|
|
35
|
+
|
|
36
|
+
- id: retain_protein_pdbs
|
|
37
|
+
type: filter.molecules
|
|
38
|
+
inputs:
|
|
39
|
+
# Manifest-backed path collection from the protein_file column.
|
|
40
|
+
molecules: gnina_flexible.flexible_proteins
|
|
41
|
+
ids: first_flexible_pose_per_ligand.filtered_table
|
|
42
|
+
config:
|
|
43
|
+
path_column: protein_file
|
|
44
|
+
|
|
45
|
+
- id: retain_complex_pdbs
|
|
46
|
+
type: filter.molecules
|
|
47
|
+
inputs:
|
|
48
|
+
# Manifest-backed path collection from the complex_file column.
|
|
49
|
+
molecules: gnina_flexible.flexible_complexes
|
|
50
|
+
ids: first_flexible_pose_per_ligand.filtered_table
|
|
51
|
+
config:
|
|
52
|
+
path_column: complex_file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Advanced template: supply all prepared inputs and scientific runtimes.
|
|
2
|
+
# Poses must share receptor coordinates and contain explicit hydrogens.
|
|
3
|
+
# Paths resolve relative to the submission working directory.
|
|
4
|
+
version: 1
|
|
5
|
+
name: pose-cleanup
|
|
6
|
+
|
|
7
|
+
defaults:
|
|
8
|
+
backend: local
|
|
9
|
+
run_directory: runs/pose-cleanup
|
|
10
|
+
registry_path: runs/job_registry.sqlite
|
|
11
|
+
export_results: false
|
|
12
|
+
|
|
13
|
+
stages:
|
|
14
|
+
- id: minimize
|
|
15
|
+
tool: md/minimize
|
|
16
|
+
config:
|
|
17
|
+
protein_pdb_path: receptor.pdb
|
|
18
|
+
ligand_path: poses.sdf
|
|
19
|
+
mode: ligand_only
|
|
20
|
+
scatter:
|
|
21
|
+
by: ligand_path
|
|
22
|
+
chunk_size: 1
|
|
23
|
+
outputs:
|
|
24
|
+
results: result_record
|
|
25
|
+
ligands: minimized_ligand
|
|
26
|
+
|
|
27
|
+
- id: collect
|
|
28
|
+
type: results.collect
|
|
29
|
+
inputs:
|
|
30
|
+
results: minimize.results
|
|
31
|
+
config:
|
|
32
|
+
metrics:
|
|
33
|
+
quality_passed: metrics.quality_passed
|
|
34
|
+
convergence: metrics.convergence_status
|
|
35
|
+
ligand_rmsd_angstrom: metrics.ligand_heavy_atom_rmsd_angstrom
|
|
36
|
+
minimized_ligand_file: paths.minimized_ligand
|
|
37
|
+
|
|
38
|
+
- id: accepted
|
|
39
|
+
type: filter.tabular
|
|
40
|
+
inputs:
|
|
41
|
+
table: collect.table
|
|
42
|
+
config:
|
|
43
|
+
filters:
|
|
44
|
+
- column: quality_passed
|
|
45
|
+
op: '=='
|
|
46
|
+
value: 1
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Advanced template: supply all prepared inputs and scientific runtimes.
|
|
2
|
+
version: 1
|
|
3
|
+
name: pose-level-openbpmd-selection
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
backend: slurm
|
|
7
|
+
registry_path: runs/job_registry.sqlite
|
|
8
|
+
job_name: pose-level-openbpmd-selection
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- id: gnina_docking
|
|
12
|
+
tool: docking/gnina
|
|
13
|
+
config: configs/gnina_docking.yaml
|
|
14
|
+
outputs:
|
|
15
|
+
# Expose the score CSV and pose directory from Result.paths.
|
|
16
|
+
scores: best_scores_csv
|
|
17
|
+
poses: poses_dir
|
|
18
|
+
|
|
19
|
+
- id: extract_poses
|
|
20
|
+
type: poses.extract
|
|
21
|
+
inputs:
|
|
22
|
+
# Split every SDF/SDFGZ pose from Gnina into a normalized one-pose SDF file.
|
|
23
|
+
poses: gnina_docking.poses
|
|
24
|
+
# Optional but useful: carries score-table metadata into the pose manifest.
|
|
25
|
+
table: gnina_docking.scores
|
|
26
|
+
config:
|
|
27
|
+
output_name: pose_manifest.csv
|
|
28
|
+
ligand_column: ligand
|
|
29
|
+
path_column: pose_file
|
|
30
|
+
|
|
31
|
+
- id: repair_pose_hydrogens
|
|
32
|
+
type: molecules.hydrogenate
|
|
33
|
+
inputs:
|
|
34
|
+
# Hydrogenate the extracted pose path collection before handing poses to OpenBPMD.
|
|
35
|
+
molecules: extract_poses.poses
|
|
36
|
+
# Reuse the pose manifest so ligand, pose_id, and pose_file provenance are preserved.
|
|
37
|
+
table: extract_poses.manifest
|
|
38
|
+
config:
|
|
39
|
+
ligand_column: ligand
|
|
40
|
+
pose_id_column: pose_id
|
|
41
|
+
# Without a templates input, hydrogens are added directly to each pose.
|
|
42
|
+
# See the built-in stage docs for template-based bond-order repair.
|
|
43
|
+
on_template_failure: warn
|
|
44
|
+
on_failure: fail
|
|
45
|
+
add_coords: true
|
|
46
|
+
output_name: hydrogenated_pose_manifest.csv
|
|
47
|
+
|
|
48
|
+
- id: openbpmd_per_pose
|
|
49
|
+
tool: md/openbpmd
|
|
50
|
+
config: configs/openbpmd_pose.yaml
|
|
51
|
+
inputs:
|
|
52
|
+
# Bind each hydrogenated pose file to OpenBPMDConfig.ligand_path.
|
|
53
|
+
ligand_path: repair_pose_hydrogens.molecules
|
|
54
|
+
scatter:
|
|
55
|
+
# Path-collection scatter submits each ligand_path shard independently.
|
|
56
|
+
by: ligand_path
|
|
57
|
+
chunk_size: 1
|
|
58
|
+
outputs:
|
|
59
|
+
# Expose canonical per-shard result records for collection.
|
|
60
|
+
result_record: result_record_json
|
|
61
|
+
|
|
62
|
+
- id: collect_pose_metrics
|
|
63
|
+
type: results.collect
|
|
64
|
+
inputs:
|
|
65
|
+
# Collect metrics from every scattered OpenBPMD result record.
|
|
66
|
+
results: openbpmd_per_pose.result_record
|
|
67
|
+
# Join explicit hydrogenation metadata to the collected metrics.
|
|
68
|
+
table: repair_pose_hydrogens.manifest
|
|
69
|
+
config:
|
|
70
|
+
metrics:
|
|
71
|
+
comp_score: metrics.comp_score
|
|
72
|
+
pose_score: metrics.pose_score
|
|
73
|
+
output_name: openbpmd_pose_metrics.csv
|
|
74
|
+
|
|
75
|
+
- id: best_pose_per_ligand
|
|
76
|
+
type: filter.tabular
|
|
77
|
+
inputs:
|
|
78
|
+
# results.collect always emits collect_pose_metrics.table.
|
|
79
|
+
table: collect_pose_metrics.table
|
|
80
|
+
config:
|
|
81
|
+
group_by: ligand
|
|
82
|
+
sort_by: comp_score
|
|
83
|
+
ascending: true
|
|
84
|
+
top_n_per_group: 1
|
|
85
|
+
output_name: best_pose_per_ligand.csv
|
|
86
|
+
|
|
87
|
+
- id: retain_best_poses
|
|
88
|
+
type: filter.molecules
|
|
89
|
+
inputs:
|
|
90
|
+
# Filter the hydrogenated pose files, not the pre-repair Gnina poses.
|
|
91
|
+
molecules: repair_pose_hydrogens.molecules
|
|
92
|
+
ids: best_pose_per_ligand.filtered_table
|
|
93
|
+
config:
|
|
94
|
+
# Prefer exact file paths from the filtered table over filename matching.
|
|
95
|
+
path_column: output_file
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Advanced template: supply all prepared inputs and scientific runtimes.
|
|
2
|
+
version: 1
|
|
3
|
+
name: collect-and-diagnose
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
backend: local
|
|
7
|
+
registry_path: runs/job_registry.sqlite
|
|
8
|
+
|
|
9
|
+
stages:
|
|
10
|
+
- id: scattered_transfer
|
|
11
|
+
tool: qm/transfer-free-energy
|
|
12
|
+
config: configs/transfer_free_energy.yaml
|
|
13
|
+
scatter:
|
|
14
|
+
# Split the ligand SDF into one-molecule transfer calculations.
|
|
15
|
+
by: ligand_sdf
|
|
16
|
+
chunk_size: 1
|
|
17
|
+
outputs:
|
|
18
|
+
# Expose per-shard canonical result records.
|
|
19
|
+
result_record: result_record_json
|
|
20
|
+
|
|
21
|
+
- id: collect_transfer
|
|
22
|
+
type: results.collect
|
|
23
|
+
inputs:
|
|
24
|
+
results: scattered_transfer.result_record
|
|
25
|
+
config:
|
|
26
|
+
metrics:
|
|
27
|
+
# Copy payload["metrics"]["delta_g_kcal_mol"] into a table column.
|
|
28
|
+
delta_g_kcal_mol: metrics.delta_g_kcal_mol
|
|
29
|
+
output_name: transfer_metrics.csv
|
|
30
|
+
|
|
31
|
+
- id: filter_transfer
|
|
32
|
+
type: filter.tabular
|
|
33
|
+
inputs:
|
|
34
|
+
# results.collect emits collect_solvation.table.
|
|
35
|
+
table: collect_transfer.table
|
|
36
|
+
config:
|
|
37
|
+
filters:
|
|
38
|
+
- column: delta_g_kcal_mol
|
|
39
|
+
op: "<="
|
|
40
|
+
value: -3.0
|
|
41
|
+
sort_by: delta_g_kcal_mol
|
|
42
|
+
ascending: true
|
|
43
|
+
output_name: favorable_transfer.csv
|
|
44
|
+
|
|
45
|
+
- id: distribution_report
|
|
46
|
+
tool: datascience/distribution-diagnostics
|
|
47
|
+
config:
|
|
48
|
+
# Built-in stage outputs can be bound into inline tool config fields.
|
|
49
|
+
csv_path: filter_transfer.filtered_table
|
|
50
|
+
column: delta_g_kcal_mol
|
|
51
|
+
bins: 50
|
|
52
|
+
include_log: false
|
|
53
|
+
outputs:
|
|
54
|
+
report: report_json
|
|
55
|
+
plot: plot_png
|