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.
Files changed (152) hide show
  1. caddforge_docs/__init__.py +1 -0
  2. caddforge_docs/cli.py +20 -0
  3. caddforge_docs/server.py +124 -0
  4. caddforge_docs/site/404.html +2118 -0
  5. caddforge_docs/site/assets/_mkdocstrings.css +237 -0
  6. caddforge_docs/site/assets/images/favicon.png +0 -0
  7. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js +16 -0
  8. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js.map +7 -0
  9. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
  10. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  11. caddforge_docs/site/assets/licenses/W3C-Software-and-Document-2015.txt +15 -0
  12. caddforge_docs/site/assets/licenses/autogrid-COPYING-GPL-2.txt +339 -0
  13. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-COPYING-GPL-3.txt +674 -0
  14. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-EXCEPTION.txt +73 -0
  15. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-NOTICE.txt +24 -0
  16. caddforge_docs/site/assets/licenses/caddforge-opencosmors-COPYING.txt +674 -0
  17. caddforge_docs/site/assets/licenses/caddforge-opencosmors-LICENSE.txt +165 -0
  18. caddforge_docs/site/assets/licenses/caddforge-unidock-tools-LICENSE.txt +202 -0
  19. caddforge_docs/site/assets/licenses/clipboard-LICENSE.txt +19 -0
  20. caddforge_docs/site/assets/licenses/escape-html-LICENSE.txt +2 -0
  21. caddforge_docs/site/assets/licenses/focus-visible-LICENSE.txt +4 -0
  22. caddforge_docs/site/assets/licenses/fontawesome-LICENSE.txt +165 -0
  23. caddforge_docs/site/assets/licenses/fuzzaldrin-plus-LICENSE.txt +21 -0
  24. caddforge_docs/site/assets/licenses/lunr-LICENSE.txt +17 -0
  25. caddforge_docs/site/assets/licenses/material-LICENSE.txt +20 -0
  26. caddforge_docs/site/assets/licenses/material-design-color-LICENSE.txt +31 -0
  27. caddforge_docs/site/assets/licenses/material-shadows-LICENSE.txt +31 -0
  28. caddforge_docs/site/assets/licenses/mkdocs-material-LICENSE.txt +19 -0
  29. caddforge_docs/site/assets/licenses/mkdocs-material-extensions-LICENSE.txt +21 -0
  30. caddforge_docs/site/assets/licenses/mkdocs-section-index-LICENSE.txt +21 -0
  31. caddforge_docs/site/assets/licenses/mkdocstrings-LICENSE.txt +15 -0
  32. caddforge_docs/site/assets/licenses/mkdocstrings-python-LICENSE.txt +15 -0
  33. caddforge_docs/site/assets/licenses/octicons-LICENSE.txt +21 -0
  34. caddforge_docs/site/assets/licenses/preact-LICENSE.txt +19 -0
  35. caddforge_docs/site/assets/licenses/properdocs-LICENSE.txt +26 -0
  36. caddforge_docs/site/assets/licenses/pymdown-extensions-LICENSE.txt +113 -0
  37. caddforge_docs/site/assets/licenses/rxjs-LICENSE.txt +180 -0
  38. caddforge_docs/site/assets/licenses/simple-LICENSE.txt +30 -0
  39. caddforge_docs/site/assets/licenses/tiny-emitter-LICENSE.txt +19 -0
  40. caddforge_docs/site/assets/licenses/tslib-LICENSE.txt +12 -0
  41. caddforge_docs/site/assets/licenses/zeno-rocha-components-LICENSE.txt +22 -0
  42. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css +1 -0
  43. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css.map +1 -0
  44. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  45. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  46. caddforge_docs/site/core/cli/index.html +2446 -0
  47. caddforge_docs/site/core/concepts/index.html +2340 -0
  48. caddforge_docs/site/core/configuration/index.html +2300 -0
  49. caddforge_docs/site/core/index.html +2170 -0
  50. caddforge_docs/site/core/jobs-results/index.html +2315 -0
  51. caddforge_docs/site/core/plugins/index.html +2200 -0
  52. caddforge_docs/site/core/slurm/index.html +2562 -0
  53. caddforge_docs/site/development/ci-publishing/index.html +2345 -0
  54. caddforge_docs/site/development/contributing/index.html +2311 -0
  55. caddforge_docs/site/development/documentation/index.html +2380 -0
  56. caddforge_docs/site/development/index.html +2201 -0
  57. caddforge_docs/site/development/release-notes/index.html +2504 -0
  58. caddforge_docs/site/development/release-readiness/index.html +2333 -0
  59. caddforge_docs/site/development/security/index.html +2181 -0
  60. caddforge_docs/site/development/tool-authoring/index.html +2435 -0
  61. caddforge_docs/site/examples/index.html +2465 -0
  62. caddforge_docs/site/examples/manifest.json +158 -0
  63. caddforge_docs/site/examples/minimize/component_overrides.yaml +14 -0
  64. caddforge_docs/site/examples/minimize/ligand_only.yaml +13 -0
  65. caddforge_docs/site/examples/minimize/pipeline_docking.yaml +84 -0
  66. caddforge_docs/site/examples/minimize/pipeline_scatter.yaml +49 -0
  67. caddforge_docs/site/examples/minimize/pocket_free_shell_restrained.yaml +13 -0
  68. caddforge_docs/site/examples/minimize/pocket_restrained.yaml +13 -0
  69. caddforge_docs/site/examples/minimize/prepared_metal.yaml +14 -0
  70. caddforge_docs/site/examples/minimize/sidechains_free_backbone_fixed.yaml +13 -0
  71. caddforge_docs/site/examples/minimize/sidechains_free_backbone_restrained.yaml +13 -0
  72. caddforge_docs/site/examples/pipelines/descriptor-model-and-candidate-filter.yaml +44 -0
  73. caddforge_docs/site/examples/pipelines/dock-extract-and-minimize-poses.yaml +85 -0
  74. caddforge_docs/site/examples/pipelines/docking-screen-and-rescore.yaml +55 -0
  75. caddforge_docs/site/examples/pipelines/flexible-gnina-to-openbpmd-to-md-to-abfe.yaml +189 -0
  76. caddforge_docs/site/examples/pipelines/gnina-flexible-complex-artifacts.yaml +52 -0
  77. caddforge_docs/site/examples/pipelines/minimize-a-multi-pose-sdf.yaml +46 -0
  78. caddforge_docs/site/examples/pipelines/pose-level-md-selection.yaml +95 -0
  79. caddforge_docs/site/examples/pipelines/result-collection-and-diagnostics.yaml +55 -0
  80. caddforge_docs/site/examples/quickstart/diagnostics.yaml +8 -0
  81. caddforge_docs/site/examples/quickstart/index.html +2172 -0
  82. caddforge_docs/site/examples/quickstart/pipeline.yaml +23 -0
  83. caddforge_docs/site/examples/quickstart/run.py +18 -0
  84. caddforge_docs/site/examples/quickstart/run_pipeline.py +6 -0
  85. caddforge_docs/site/examples/quickstart/scores.csv +7 -0
  86. caddforge_docs/site/examples/quickstart/values.csv +31 -0
  87. caddforge_docs/site/examples/run_tool.py +40 -0
  88. caddforge_docs/site/examples/tools/datascience-csv-scatter.yaml +17 -0
  89. caddforge_docs/site/examples/tools/datascience-distribution-diagnostics.yaml +10 -0
  90. caddforge_docs/site/examples/tools/descriptors-ani-conformers.yaml +9 -0
  91. caddforge_docs/site/examples/tools/descriptors-ani-psa.yaml +9 -0
  92. caddforge_docs/site/examples/tools/descriptors-cluster-molecules.yaml +11 -0
  93. caddforge_docs/site/examples/tools/descriptors-phesa.yaml +7 -0
  94. caddforge_docs/site/examples/tools/docking-gnina.yaml +12 -0
  95. caddforge_docs/site/examples/tools/docking-idockya.yaml +8 -0
  96. caddforge_docs/site/examples/tools/docking-unidock.yaml +12 -0
  97. caddforge_docs/site/examples/tools/fep-openfe-abfe.yaml +53 -0
  98. caddforge_docs/site/examples/tools/fep-openfe-rbfe-septop.yaml +23 -0
  99. caddforge_docs/site/examples/tools/md-center-and-align.yaml +16 -0
  100. caddforge_docs/site/examples/tools/md-cluster-representative.yaml +16 -0
  101. caddforge_docs/site/examples/tools/md-extract-frames.yaml +17 -0
  102. caddforge_docs/site/examples/tools/md-fix-structure.yaml +20 -0
  103. caddforge_docs/site/examples/tools/md-grand.yaml +28 -0
  104. caddforge_docs/site/examples/tools/md-inducia.yaml +29 -0
  105. caddforge_docs/site/examples/tools/md-minimize.yaml +13 -0
  106. caddforge_docs/site/examples/tools/md-openbpmd.yaml +11 -0
  107. caddforge_docs/site/examples/tools/md-plain-md.yaml +28 -0
  108. caddforge_docs/site/examples/tools/ml-explore-classifier.yaml +5 -0
  109. caddforge_docs/site/examples/tools/ml-model-factory.yaml +32 -0
  110. caddforge_docs/site/examples/tools/ml-model-zoo.yaml +16 -0
  111. caddforge_docs/site/examples/tools/ml-pca.yaml +10 -0
  112. caddforge_docs/site/examples/tools/ml-simple-gp.yaml +17 -0
  113. caddforge_docs/site/examples/tools/qm-transfer-free-energy.yaml +11 -0
  114. caddforge_docs/site/explanation/references/index.html +2218 -0
  115. caddforge_docs/site/explanation/reproducibility/index.html +2306 -0
  116. caddforge_docs/site/explanation/third-party-notices/index.html +2599 -0
  117. caddforge_docs/site/getting-started/first-pipeline/index.html +2195 -0
  118. caddforge_docs/site/getting-started/first-workflow/index.html +2329 -0
  119. caddforge_docs/site/getting-started/index.html +2200 -0
  120. caddforge_docs/site/getting-started/installation/index.html +2541 -0
  121. caddforge_docs/site/gui/index.html +2267 -0
  122. caddforge_docs/site/gui/plugin-authoring/index.html +2280 -0
  123. caddforge_docs/site/gui/walkthrough/index.html +2181 -0
  124. caddforge_docs/site/how-to/jobs/index.html +2195 -0
  125. caddforge_docs/site/how-to/scatter/index.html +2193 -0
  126. caddforge_docs/site/how-to/troubleshooting/index.html +2429 -0
  127. caddforge_docs/site/index.html +2359 -0
  128. caddforge_docs/site/objects.inv +0 -0
  129. caddforge_docs/site/pipelines/artifacts/index.html +2314 -0
  130. caddforge_docs/site/pipelines/built-ins/index.html +2670 -0
  131. caddforge_docs/site/pipelines/examples/index.html +3186 -0
  132. caddforge_docs/site/pipelines/index.html +2164 -0
  133. caddforge_docs/site/pipelines/specification/index.html +2278 -0
  134. caddforge_docs/site/plugins/datascience/index.html +2405 -0
  135. caddforge_docs/site/plugins/descriptors/index.html +2609 -0
  136. caddforge_docs/site/plugins/docking/index.html +2480 -0
  137. caddforge_docs/site/plugins/fep/index.html +2508 -0
  138. caddforge_docs/site/plugins/index.html +2216 -0
  139. caddforge_docs/site/plugins/md/index.html +3795 -0
  140. caddforge_docs/site/plugins/ml/index.html +2815 -0
  141. caddforge_docs/site/plugins/qm/index.html +2309 -0
  142. caddforge_docs/site/plugins/version-matrix/index.html +2449 -0
  143. caddforge_docs/site/reference/api/index.html +4414 -0
  144. caddforge_docs/site/reference/index.html +2166 -0
  145. caddforge_docs/site/search/search_index.json +1 -0
  146. caddforge_docs/site/sitemap.xml +191 -0
  147. caddforge_docs/site/sitemap.xml.gz +0 -0
  148. caddforge_docs-0.3.0.dist-info/METADATA +158 -0
  149. caddforge_docs-0.3.0.dist-info/RECORD +152 -0
  150. caddforge_docs-0.3.0.dist-info/WHEEL +4 -0
  151. caddforge_docs-0.3.0.dist-info/entry_points.txt +2 -0
  152. 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
@@ -0,0 +1,8 @@
1
+ backend: local
2
+ csv_path: values.csv
3
+ column: value
4
+ bins: 10
5
+ sample_size: 100
6
+ random_seed: 0
7
+ include_log: false
8
+ results_filename: distribution_report.json