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,2609 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+ <meta name="description" content="Central documentation for the CADDForge CADD toolbox framework.">
10
+
11
+
12
+
13
+ <link rel="canonical" href="https://idorsia.github.io/caddforge-docs/plugins/descriptors/">
14
+
15
+
16
+ <link rel="prev" href="../docking/">
17
+
18
+
19
+ <link rel="next" href="../md/">
20
+
21
+
22
+
23
+
24
+
25
+ <link rel="icon" href="../../assets/images/favicon.png">
26
+ <meta name="generator" content="mkdocs-ProperDocs 1.6.7, mkdocs-material-9.7.7">
27
+
28
+
29
+
30
+ <title>Descriptors - CADDForge</title>
31
+
32
+
33
+
34
+ <link rel="stylesheet" href="../../assets/stylesheets/main.ec1eaa64.min.css">
35
+
36
+
37
+ <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
51
+
52
+ <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
53
+
54
+
55
+
56
+
57
+
58
+ </head>
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal">
69
+
70
+
71
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
72
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
73
+ <label class="md-overlay" for="__drawer"></label>
74
+ <div data-md-component="skip">
75
+
76
+
77
+ <a href="#descriptors-plugin" class="md-skip">
78
+ Skip to content
79
+ </a>
80
+
81
+ </div>
82
+ <div data-md-component="announce">
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <header class="md-header md-header--shadow" data-md-component="header">
92
+ <nav class="md-header__inner md-grid" aria-label="Header">
93
+ <a href="../.." title="CADDForge" class="md-header__button md-logo" aria-label="CADDForge" data-md-component="logo">
94
+
95
+
96
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
97
+
98
+ </a>
99
+ <label class="md-header__button md-icon" for="__drawer">
100
+
101
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
102
+ </label>
103
+ <div class="md-header__title" data-md-component="header-title">
104
+ <div class="md-header__ellipsis">
105
+ <div class="md-header__topic">
106
+ <span class="md-ellipsis">
107
+ CADDForge
108
+ </span>
109
+ </div>
110
+ <div class="md-header__topic" data-md-component="header-topic">
111
+ <span class="md-ellipsis">
112
+
113
+ Descriptors
114
+
115
+ </span>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+
121
+ <form class="md-header__option" data-md-component="palette">
122
+
123
+
124
+
125
+
126
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
127
+
128
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
129
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
130
+ </label>
131
+
132
+
133
+
134
+
135
+
136
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
137
+
138
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
139
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
140
+ </label>
141
+
142
+
143
+ </form>
144
+
145
+
146
+
147
+ <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
148
+
149
+
150
+
151
+
152
+
153
+ <label class="md-header__button md-icon" for="__search">
154
+
155
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
156
+ </label>
157
+ <div class="md-search" data-md-component="search" role="dialog">
158
+ <label class="md-search__overlay" for="__search"></label>
159
+ <div class="md-search__inner" role="search">
160
+ <form class="md-search__form" name="search">
161
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
162
+ <label class="md-search__icon md-icon" for="__search">
163
+
164
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
165
+
166
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
167
+ </label>
168
+ <nav class="md-search__options" aria-label="Search">
169
+
170
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
171
+
172
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
173
+ </button>
174
+ </nav>
175
+
176
+ <div class="md-search__suggest" data-md-component="search-suggest"></div>
177
+
178
+ </form>
179
+ <div class="md-search__output">
180
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
181
+ <div class="md-search-result" data-md-component="search-result">
182
+ <div class="md-search-result__meta">
183
+ Initializing search
184
+ </div>
185
+ <ol class="md-search-result__list" role="presentation"></ol>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+
193
+
194
+ <div class="md-header__source">
195
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
196
+ <div class="md-source__icon md-icon">
197
+
198
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
199
+ </div>
200
+ <div class="md-source__repository">
201
+ caddforge-docs
202
+ </div>
203
+ </a>
204
+ </div>
205
+
206
+ </nav>
207
+
208
+ </header>
209
+
210
+ <div class="md-container" data-md-component="container">
211
+
212
+
213
+
214
+
215
+
216
+
217
+ <main class="md-main" data-md-component="main">
218
+ <div class="md-main__inner md-grid">
219
+
220
+
221
+
222
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
223
+ <div class="md-sidebar__scrollwrap">
224
+ <div class="md-sidebar__inner">
225
+
226
+
227
+
228
+
229
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
230
+ <label class="md-nav__title" for="__drawer">
231
+ <a href="../.." title="CADDForge" class="md-nav__button md-logo" aria-label="CADDForge" data-md-component="logo">
232
+
233
+
234
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
235
+
236
+ </a>
237
+ CADDForge
238
+ </label>
239
+
240
+ <div class="md-nav__source">
241
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
242
+ <div class="md-source__icon md-icon">
243
+
244
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
245
+ </div>
246
+ <div class="md-source__repository">
247
+ caddforge-docs
248
+ </div>
249
+ </a>
250
+ </div>
251
+
252
+ <ul class="md-nav__list" data-md-scrollfix>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <li class="md-nav__item">
261
+ <a href="../.." class="md-nav__link">
262
+
263
+
264
+
265
+ <span class="md-ellipsis">
266
+
267
+
268
+ Home
269
+
270
+
271
+
272
+ </span>
273
+
274
+
275
+
276
+ </a>
277
+ </li>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
306
+
307
+
308
+
309
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
310
+
311
+
312
+ <div class="md-nav__link md-nav__container">
313
+ <a href="../../getting-started/" class="md-nav__link ">
314
+
315
+
316
+
317
+ <span class="md-ellipsis">
318
+
319
+
320
+ Getting Started
321
+
322
+
323
+
324
+ </span>
325
+
326
+
327
+
328
+ </a>
329
+
330
+
331
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
332
+ <span class="md-nav__icon md-icon"></span>
333
+ </label>
334
+
335
+ </div>
336
+
337
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
338
+ <label class="md-nav__title" for="__nav_2">
339
+ <span class="md-nav__icon md-icon"></span>
340
+
341
+
342
+ Getting Started
343
+
344
+
345
+ </label>
346
+ <ul class="md-nav__list" data-md-scrollfix>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+ <li class="md-nav__item">
355
+ <a href="../../getting-started/installation/" class="md-nav__link">
356
+
357
+
358
+
359
+ <span class="md-ellipsis">
360
+
361
+
362
+ Installation
363
+
364
+
365
+
366
+ </span>
367
+
368
+
369
+
370
+ </a>
371
+ </li>
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <li class="md-nav__item">
383
+ <a href="../../getting-started/first-workflow/" class="md-nav__link">
384
+
385
+
386
+
387
+ <span class="md-ellipsis">
388
+
389
+
390
+ First Workflow
391
+
392
+
393
+
394
+ </span>
395
+
396
+
397
+
398
+ </a>
399
+ </li>
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+ <li class="md-nav__item">
411
+ <a href="../../getting-started/first-pipeline/" class="md-nav__link">
412
+
413
+
414
+
415
+ <span class="md-ellipsis">
416
+
417
+
418
+ First Pipeline
419
+
420
+
421
+
422
+ </span>
423
+
424
+
425
+
426
+ </a>
427
+ </li>
428
+
429
+
430
+
431
+
432
+ </ul>
433
+ </nav>
434
+
435
+ </li>
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
464
+
465
+
466
+
467
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
468
+
469
+
470
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
471
+
472
+
473
+
474
+ <span class="md-ellipsis">
475
+
476
+
477
+ How-to Guides
478
+
479
+
480
+
481
+ </span>
482
+
483
+
484
+
485
+ <span class="md-nav__icon md-icon"></span>
486
+ </label>
487
+
488
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
489
+ <label class="md-nav__title" for="__nav_3">
490
+ <span class="md-nav__icon md-icon"></span>
491
+
492
+
493
+ How-to Guides
494
+
495
+
496
+ </label>
497
+ <ul class="md-nav__list" data-md-scrollfix>
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ <li class="md-nav__item">
506
+ <a href="../../how-to/jobs/" class="md-nav__link">
507
+
508
+
509
+
510
+ <span class="md-ellipsis">
511
+
512
+
513
+ Jobs and Results
514
+
515
+
516
+
517
+ </span>
518
+
519
+
520
+
521
+ </a>
522
+ </li>
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+ <li class="md-nav__item">
534
+ <a href="../../how-to/scatter/" class="md-nav__link">
535
+
536
+
537
+
538
+ <span class="md-ellipsis">
539
+
540
+
541
+ Scatter and Reduce
542
+
543
+
544
+
545
+ </span>
546
+
547
+
548
+
549
+ </a>
550
+ </li>
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+ <li class="md-nav__item">
562
+ <a href="../../how-to/troubleshooting/" class="md-nav__link">
563
+
564
+
565
+
566
+ <span class="md-ellipsis">
567
+
568
+
569
+ Troubleshooting
570
+
571
+
572
+
573
+ </span>
574
+
575
+
576
+
577
+ </a>
578
+ </li>
579
+
580
+
581
+
582
+
583
+ </ul>
584
+ </nav>
585
+
586
+ </li>
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
621
+
622
+
623
+
624
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
625
+
626
+
627
+ <div class="md-nav__link md-nav__container">
628
+ <a href="../../core/" class="md-nav__link ">
629
+
630
+
631
+
632
+ <span class="md-ellipsis">
633
+
634
+
635
+ Core
636
+
637
+
638
+
639
+ </span>
640
+
641
+
642
+
643
+ </a>
644
+
645
+
646
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
647
+ <span class="md-nav__icon md-icon"></span>
648
+ </label>
649
+
650
+ </div>
651
+
652
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
653
+ <label class="md-nav__title" for="__nav_4">
654
+ <span class="md-nav__icon md-icon"></span>
655
+
656
+
657
+ Core
658
+
659
+
660
+ </label>
661
+ <ul class="md-nav__list" data-md-scrollfix>
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+ <li class="md-nav__item">
670
+ <a href="../../core/concepts/" class="md-nav__link">
671
+
672
+
673
+
674
+ <span class="md-ellipsis">
675
+
676
+
677
+ Concepts
678
+
679
+
680
+
681
+ </span>
682
+
683
+
684
+
685
+ </a>
686
+ </li>
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+ <li class="md-nav__item">
698
+ <a href="../../core/configuration/" class="md-nav__link">
699
+
700
+
701
+
702
+ <span class="md-ellipsis">
703
+
704
+
705
+ Configuration
706
+
707
+
708
+
709
+ </span>
710
+
711
+
712
+
713
+ </a>
714
+ </li>
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+ <li class="md-nav__item">
726
+ <a href="../../core/cli/" class="md-nav__link">
727
+
728
+
729
+
730
+ <span class="md-ellipsis">
731
+
732
+
733
+ CLI
734
+
735
+
736
+
737
+ </span>
738
+
739
+
740
+
741
+ </a>
742
+ </li>
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+ <li class="md-nav__item">
754
+ <a href="../../core/jobs-results/" class="md-nav__link">
755
+
756
+
757
+
758
+ <span class="md-ellipsis">
759
+
760
+
761
+ Jobs and Results
762
+
763
+
764
+
765
+ </span>
766
+
767
+
768
+
769
+ </a>
770
+ </li>
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+ <li class="md-nav__item">
782
+ <a href="../../core/slurm/" class="md-nav__link">
783
+
784
+
785
+
786
+ <span class="md-ellipsis">
787
+
788
+
789
+ Slurm Backend
790
+
791
+
792
+
793
+ </span>
794
+
795
+
796
+
797
+ </a>
798
+ </li>
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+ <li class="md-nav__item">
810
+ <a href="../../core/plugins/" class="md-nav__link">
811
+
812
+
813
+
814
+ <span class="md-ellipsis">
815
+
816
+
817
+ Plugins
818
+
819
+
820
+
821
+ </span>
822
+
823
+
824
+
825
+ </a>
826
+ </li>
827
+
828
+
829
+
830
+
831
+ </ul>
832
+ </nav>
833
+
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
865
+
866
+
867
+
868
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
869
+
870
+
871
+ <div class="md-nav__link md-nav__container">
872
+ <a href="../../pipelines/" class="md-nav__link ">
873
+
874
+
875
+
876
+ <span class="md-ellipsis">
877
+
878
+
879
+ Pipelines
880
+
881
+
882
+
883
+ </span>
884
+
885
+
886
+
887
+ </a>
888
+
889
+
890
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
891
+ <span class="md-nav__icon md-icon"></span>
892
+ </label>
893
+
894
+ </div>
895
+
896
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
897
+ <label class="md-nav__title" for="__nav_5">
898
+ <span class="md-nav__icon md-icon"></span>
899
+
900
+
901
+ Pipelines
902
+
903
+
904
+ </label>
905
+ <ul class="md-nav__list" data-md-scrollfix>
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+ <li class="md-nav__item">
914
+ <a href="../../pipelines/specification/" class="md-nav__link">
915
+
916
+
917
+
918
+ <span class="md-ellipsis">
919
+
920
+
921
+ Specification
922
+
923
+
924
+
925
+ </span>
926
+
927
+
928
+
929
+ </a>
930
+ </li>
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+ <li class="md-nav__item">
942
+ <a href="../../pipelines/artifacts/" class="md-nav__link">
943
+
944
+
945
+
946
+ <span class="md-ellipsis">
947
+
948
+
949
+ Artifacts
950
+
951
+
952
+
953
+ </span>
954
+
955
+
956
+
957
+ </a>
958
+ </li>
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+ <li class="md-nav__item">
970
+ <a href="../../pipelines/built-ins/" class="md-nav__link">
971
+
972
+
973
+
974
+ <span class="md-ellipsis">
975
+
976
+
977
+ Built-in Stages
978
+
979
+
980
+
981
+ </span>
982
+
983
+
984
+
985
+ </a>
986
+ </li>
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+ <li class="md-nav__item">
998
+ <a href="../../pipelines/examples/" class="md-nav__link">
999
+
1000
+
1001
+
1002
+ <span class="md-ellipsis">
1003
+
1004
+
1005
+ Examples
1006
+
1007
+
1008
+
1009
+ </span>
1010
+
1011
+
1012
+
1013
+ </a>
1014
+ </li>
1015
+
1016
+
1017
+
1018
+
1019
+ </ul>
1020
+ </nav>
1021
+
1022
+ </li>
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
1063
+
1064
+
1065
+
1066
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
1067
+
1068
+
1069
+ <div class="md-nav__link md-nav__container">
1070
+ <a href="../" class="md-nav__link ">
1071
+
1072
+
1073
+
1074
+ <span class="md-ellipsis">
1075
+
1076
+
1077
+ Plugins
1078
+
1079
+
1080
+
1081
+ </span>
1082
+
1083
+
1084
+
1085
+ </a>
1086
+
1087
+
1088
+ <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
1089
+ <span class="md-nav__icon md-icon"></span>
1090
+ </label>
1091
+
1092
+ </div>
1093
+
1094
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
1095
+ <label class="md-nav__title" for="__nav_6">
1096
+ <span class="md-nav__icon md-icon"></span>
1097
+
1098
+
1099
+ Plugins
1100
+
1101
+
1102
+ </label>
1103
+ <ul class="md-nav__list" data-md-scrollfix>
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+ <li class="md-nav__item">
1112
+ <a href="../version-matrix/" class="md-nav__link">
1113
+
1114
+
1115
+
1116
+ <span class="md-ellipsis">
1117
+
1118
+
1119
+ Version Matrix
1120
+
1121
+
1122
+
1123
+ </span>
1124
+
1125
+
1126
+
1127
+ </a>
1128
+ </li>
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+
1139
+ <li class="md-nav__item">
1140
+ <a href="../docking/" class="md-nav__link">
1141
+
1142
+
1143
+
1144
+ <span class="md-ellipsis">
1145
+
1146
+
1147
+ Docking
1148
+
1149
+
1150
+
1151
+ </span>
1152
+
1153
+
1154
+
1155
+ </a>
1156
+ </li>
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+ <li class="md-nav__item md-nav__item--active">
1170
+
1171
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1178
+
1179
+
1180
+
1181
+ <span class="md-ellipsis">
1182
+
1183
+
1184
+ Descriptors
1185
+
1186
+
1187
+
1188
+ </span>
1189
+
1190
+
1191
+
1192
+ <span class="md-nav__icon md-icon"></span>
1193
+ </label>
1194
+
1195
+ <a href="./" class="md-nav__link md-nav__link--active">
1196
+
1197
+
1198
+
1199
+ <span class="md-ellipsis">
1200
+
1201
+
1202
+ Descriptors
1203
+
1204
+
1205
+
1206
+ </span>
1207
+
1208
+
1209
+
1210
+ </a>
1211
+
1212
+
1213
+
1214
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+ <label class="md-nav__title" for="__toc">
1222
+ <span class="md-nav__icon md-icon"></span>
1223
+ Table of contents
1224
+ </label>
1225
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1226
+
1227
+ <li class="md-nav__item">
1228
+ <a href="#requirements-and-example-status" class="md-nav__link">
1229
+ <span class="md-ellipsis">
1230
+
1231
+ Requirements and example status
1232
+
1233
+ </span>
1234
+ </a>
1235
+
1236
+ </li>
1237
+
1238
+ <li class="md-nav__item">
1239
+ <a href="#ani-psa" class="md-nav__link">
1240
+ <span class="md-ellipsis">
1241
+
1242
+ ani-psa
1243
+
1244
+ </span>
1245
+ </a>
1246
+
1247
+ </li>
1248
+
1249
+ <li class="md-nav__item">
1250
+ <a href="#phesa" class="md-nav__link">
1251
+ <span class="md-ellipsis">
1252
+
1253
+ phesa
1254
+
1255
+ </span>
1256
+ </a>
1257
+
1258
+ </li>
1259
+
1260
+ <li class="md-nav__item">
1261
+ <a href="#ani-conformers" class="md-nav__link">
1262
+ <span class="md-ellipsis">
1263
+
1264
+ ani-conformers
1265
+
1266
+ </span>
1267
+ </a>
1268
+
1269
+ </li>
1270
+
1271
+ <li class="md-nav__item">
1272
+ <a href="#cluster-molecules" class="md-nav__link">
1273
+ <span class="md-ellipsis">
1274
+
1275
+ cluster-molecules
1276
+
1277
+ </span>
1278
+ </a>
1279
+
1280
+ </li>
1281
+
1282
+ <li class="md-nav__item">
1283
+ <a href="#compressed-inputs" class="md-nav__link">
1284
+ <span class="md-ellipsis">
1285
+
1286
+ Compressed inputs
1287
+
1288
+ </span>
1289
+ </a>
1290
+
1291
+ </li>
1292
+
1293
+ </ul>
1294
+
1295
+ </nav>
1296
+
1297
+ </li>
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+ <li class="md-nav__item">
1309
+ <a href="../md/" class="md-nav__link">
1310
+
1311
+
1312
+
1313
+ <span class="md-ellipsis">
1314
+
1315
+
1316
+ MD
1317
+
1318
+
1319
+
1320
+ </span>
1321
+
1322
+
1323
+
1324
+ </a>
1325
+ </li>
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+ <li class="md-nav__item">
1337
+ <a href="../fep/" class="md-nav__link">
1338
+
1339
+
1340
+
1341
+ <span class="md-ellipsis">
1342
+
1343
+
1344
+ FEP
1345
+
1346
+
1347
+
1348
+ </span>
1349
+
1350
+
1351
+
1352
+ </a>
1353
+ </li>
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+ <li class="md-nav__item">
1365
+ <a href="../qm/" class="md-nav__link">
1366
+
1367
+
1368
+
1369
+ <span class="md-ellipsis">
1370
+
1371
+
1372
+ QM
1373
+
1374
+
1375
+
1376
+ </span>
1377
+
1378
+
1379
+
1380
+ </a>
1381
+ </li>
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+ <li class="md-nav__item">
1393
+ <a href="../ml/" class="md-nav__link">
1394
+
1395
+
1396
+
1397
+ <span class="md-ellipsis">
1398
+
1399
+
1400
+ ML
1401
+
1402
+
1403
+
1404
+ </span>
1405
+
1406
+
1407
+
1408
+ </a>
1409
+ </li>
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+ <li class="md-nav__item">
1421
+ <a href="../datascience/" class="md-nav__link">
1422
+
1423
+
1424
+
1425
+ <span class="md-ellipsis">
1426
+
1427
+
1428
+ Data Science
1429
+
1430
+
1431
+
1432
+ </span>
1433
+
1434
+
1435
+
1436
+ </a>
1437
+ </li>
1438
+
1439
+
1440
+
1441
+
1442
+ </ul>
1443
+ </nav>
1444
+
1445
+ </li>
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1472
+
1473
+
1474
+
1475
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1476
+
1477
+
1478
+ <div class="md-nav__link md-nav__container">
1479
+ <a href="../../gui/" class="md-nav__link ">
1480
+
1481
+
1482
+
1483
+ <span class="md-ellipsis">
1484
+
1485
+
1486
+ GUI
1487
+
1488
+
1489
+
1490
+ </span>
1491
+
1492
+
1493
+
1494
+ </a>
1495
+
1496
+
1497
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="">
1498
+ <span class="md-nav__icon md-icon"></span>
1499
+ </label>
1500
+
1501
+ </div>
1502
+
1503
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1504
+ <label class="md-nav__title" for="__nav_7">
1505
+ <span class="md-nav__icon md-icon"></span>
1506
+
1507
+
1508
+ GUI
1509
+
1510
+
1511
+ </label>
1512
+ <ul class="md-nav__list" data-md-scrollfix>
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+ <li class="md-nav__item">
1521
+ <a href="../../gui/walkthrough/" class="md-nav__link">
1522
+
1523
+
1524
+
1525
+ <span class="md-ellipsis">
1526
+
1527
+
1528
+ Walkthrough
1529
+
1530
+
1531
+
1532
+ </span>
1533
+
1534
+
1535
+
1536
+ </a>
1537
+ </li>
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+ <li class="md-nav__item">
1549
+ <a href="../../gui/plugin-authoring/" class="md-nav__link">
1550
+
1551
+
1552
+
1553
+ <span class="md-ellipsis">
1554
+
1555
+
1556
+ Plugin GUI Authoring
1557
+
1558
+
1559
+
1560
+ </span>
1561
+
1562
+
1563
+
1564
+ </a>
1565
+ </li>
1566
+
1567
+
1568
+
1569
+
1570
+ </ul>
1571
+ </nav>
1572
+
1573
+ </li>
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1602
+
1603
+
1604
+
1605
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
1606
+
1607
+
1608
+ <div class="md-nav__link md-nav__container">
1609
+ <a href="../../reference/" class="md-nav__link ">
1610
+
1611
+
1612
+
1613
+ <span class="md-ellipsis">
1614
+
1615
+
1616
+ Reference
1617
+
1618
+
1619
+
1620
+ </span>
1621
+
1622
+
1623
+
1624
+ </a>
1625
+
1626
+
1627
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
1628
+ <span class="md-nav__icon md-icon"></span>
1629
+ </label>
1630
+
1631
+ </div>
1632
+
1633
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
1634
+ <label class="md-nav__title" for="__nav_8">
1635
+ <span class="md-nav__icon md-icon"></span>
1636
+
1637
+
1638
+ Reference
1639
+
1640
+
1641
+ </label>
1642
+ <ul class="md-nav__list" data-md-scrollfix>
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+ <li class="md-nav__item">
1651
+ <a href="../../reference/api/" class="md-nav__link">
1652
+
1653
+
1654
+
1655
+ <span class="md-ellipsis">
1656
+
1657
+
1658
+ Public Python API
1659
+
1660
+
1661
+
1662
+ </span>
1663
+
1664
+
1665
+
1666
+ </a>
1667
+ </li>
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+ <li class="md-nav__item">
1679
+ <a href="../../examples/" class="md-nav__link">
1680
+
1681
+
1682
+
1683
+ <span class="md-ellipsis">
1684
+
1685
+
1686
+ Example Library
1687
+
1688
+
1689
+
1690
+ </span>
1691
+
1692
+
1693
+
1694
+ </a>
1695
+ </li>
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+ <li class="md-nav__item">
1707
+ <a href="../../examples/quickstart/" class="md-nav__link">
1708
+
1709
+
1710
+
1711
+ <span class="md-ellipsis">
1712
+
1713
+
1714
+ Example Data Provenance
1715
+
1716
+
1717
+
1718
+ </span>
1719
+
1720
+
1721
+
1722
+ </a>
1723
+ </li>
1724
+
1725
+
1726
+
1727
+
1728
+ </ul>
1729
+ </nav>
1730
+
1731
+ </li>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1760
+
1761
+
1762
+
1763
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
1764
+
1765
+
1766
+ <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
1767
+
1768
+
1769
+
1770
+ <span class="md-ellipsis">
1771
+
1772
+
1773
+ Explanation
1774
+
1775
+
1776
+
1777
+ </span>
1778
+
1779
+
1780
+
1781
+ <span class="md-nav__icon md-icon"></span>
1782
+ </label>
1783
+
1784
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
1785
+ <label class="md-nav__title" for="__nav_9">
1786
+ <span class="md-nav__icon md-icon"></span>
1787
+
1788
+
1789
+ Explanation
1790
+
1791
+
1792
+ </label>
1793
+ <ul class="md-nav__list" data-md-scrollfix>
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+ <li class="md-nav__item">
1802
+ <a href="../../explanation/reproducibility/" class="md-nav__link">
1803
+
1804
+
1805
+
1806
+ <span class="md-ellipsis">
1807
+
1808
+
1809
+ Reproducibility
1810
+
1811
+
1812
+
1813
+ </span>
1814
+
1815
+
1816
+
1817
+ </a>
1818
+ </li>
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+ <li class="md-nav__item">
1830
+ <a href="../../explanation/references/" class="md-nav__link">
1831
+
1832
+
1833
+
1834
+ <span class="md-ellipsis">
1835
+
1836
+
1837
+ Method References
1838
+
1839
+
1840
+
1841
+ </span>
1842
+
1843
+
1844
+
1845
+ </a>
1846
+ </li>
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+ <li class="md-nav__item">
1858
+ <a href="../../explanation/third-party-notices/" class="md-nav__link">
1859
+
1860
+
1861
+
1862
+ <span class="md-ellipsis">
1863
+
1864
+
1865
+ Third-party Notices
1866
+
1867
+
1868
+
1869
+ </span>
1870
+
1871
+
1872
+
1873
+ </a>
1874
+ </li>
1875
+
1876
+
1877
+
1878
+
1879
+ </ul>
1880
+ </nav>
1881
+
1882
+ </li>
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1919
+
1920
+
1921
+
1922
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
1923
+
1924
+
1925
+ <div class="md-nav__link md-nav__container">
1926
+ <a href="../../development/" class="md-nav__link ">
1927
+
1928
+
1929
+
1930
+ <span class="md-ellipsis">
1931
+
1932
+
1933
+ Development
1934
+
1935
+
1936
+
1937
+ </span>
1938
+
1939
+
1940
+
1941
+ </a>
1942
+
1943
+
1944
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="">
1945
+ <span class="md-nav__icon md-icon"></span>
1946
+ </label>
1947
+
1948
+ </div>
1949
+
1950
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
1951
+ <label class="md-nav__title" for="__nav_10">
1952
+ <span class="md-nav__icon md-icon"></span>
1953
+
1954
+
1955
+ Development
1956
+
1957
+
1958
+ </label>
1959
+ <ul class="md-nav__list" data-md-scrollfix>
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+
1966
+
1967
+ <li class="md-nav__item">
1968
+ <a href="../../development/release-notes/" class="md-nav__link">
1969
+
1970
+
1971
+
1972
+ <span class="md-ellipsis">
1973
+
1974
+
1975
+ Release Notes
1976
+
1977
+
1978
+
1979
+ </span>
1980
+
1981
+
1982
+
1983
+ </a>
1984
+ </li>
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+ <li class="md-nav__item">
1996
+ <a href="../../development/tool-authoring/" class="md-nav__link">
1997
+
1998
+
1999
+
2000
+ <span class="md-ellipsis">
2001
+
2002
+
2003
+ Tool Authoring
2004
+
2005
+
2006
+
2007
+ </span>
2008
+
2009
+
2010
+
2011
+ </a>
2012
+ </li>
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+ <li class="md-nav__item">
2024
+ <a href="../../development/documentation/" class="md-nav__link">
2025
+
2026
+
2027
+
2028
+ <span class="md-ellipsis">
2029
+
2030
+
2031
+ Documentation
2032
+
2033
+
2034
+
2035
+ </span>
2036
+
2037
+
2038
+
2039
+ </a>
2040
+ </li>
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+ <li class="md-nav__item">
2052
+ <a href="../../development/contributing/" class="md-nav__link">
2053
+
2054
+
2055
+
2056
+ <span class="md-ellipsis">
2057
+
2058
+
2059
+ Contributing
2060
+
2061
+
2062
+
2063
+ </span>
2064
+
2065
+
2066
+
2067
+ </a>
2068
+ </li>
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+ <li class="md-nav__item">
2080
+ <a href="../../development/security/" class="md-nav__link">
2081
+
2082
+
2083
+
2084
+ <span class="md-ellipsis">
2085
+
2086
+
2087
+ Security Reporting
2088
+
2089
+
2090
+
2091
+ </span>
2092
+
2093
+
2094
+
2095
+ </a>
2096
+ </li>
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+ <li class="md-nav__item">
2108
+ <a href="../../development/release-readiness/" class="md-nav__link">
2109
+
2110
+
2111
+
2112
+ <span class="md-ellipsis">
2113
+
2114
+
2115
+ Release Readiness
2116
+
2117
+
2118
+
2119
+ </span>
2120
+
2121
+
2122
+
2123
+ </a>
2124
+ </li>
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+ <li class="md-nav__item">
2136
+ <a href="../../development/ci-publishing/" class="md-nav__link">
2137
+
2138
+
2139
+
2140
+ <span class="md-ellipsis">
2141
+
2142
+
2143
+ CI and Publishing
2144
+
2145
+
2146
+
2147
+ </span>
2148
+
2149
+
2150
+
2151
+ </a>
2152
+ </li>
2153
+
2154
+
2155
+
2156
+
2157
+ </ul>
2158
+ </nav>
2159
+
2160
+ </li>
2161
+
2162
+
2163
+
2164
+ </ul>
2165
+ </nav>
2166
+ </div>
2167
+ </div>
2168
+ </div>
2169
+
2170
+
2171
+
2172
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2173
+ <div class="md-sidebar__scrollwrap">
2174
+ <div class="md-sidebar__inner">
2175
+
2176
+
2177
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+ <label class="md-nav__title" for="__toc">
2185
+ <span class="md-nav__icon md-icon"></span>
2186
+ Table of contents
2187
+ </label>
2188
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2189
+
2190
+ <li class="md-nav__item">
2191
+ <a href="#requirements-and-example-status" class="md-nav__link">
2192
+ <span class="md-ellipsis">
2193
+
2194
+ Requirements and example status
2195
+
2196
+ </span>
2197
+ </a>
2198
+
2199
+ </li>
2200
+
2201
+ <li class="md-nav__item">
2202
+ <a href="#ani-psa" class="md-nav__link">
2203
+ <span class="md-ellipsis">
2204
+
2205
+ ani-psa
2206
+
2207
+ </span>
2208
+ </a>
2209
+
2210
+ </li>
2211
+
2212
+ <li class="md-nav__item">
2213
+ <a href="#phesa" class="md-nav__link">
2214
+ <span class="md-ellipsis">
2215
+
2216
+ phesa
2217
+
2218
+ </span>
2219
+ </a>
2220
+
2221
+ </li>
2222
+
2223
+ <li class="md-nav__item">
2224
+ <a href="#ani-conformers" class="md-nav__link">
2225
+ <span class="md-ellipsis">
2226
+
2227
+ ani-conformers
2228
+
2229
+ </span>
2230
+ </a>
2231
+
2232
+ </li>
2233
+
2234
+ <li class="md-nav__item">
2235
+ <a href="#cluster-molecules" class="md-nav__link">
2236
+ <span class="md-ellipsis">
2237
+
2238
+ cluster-molecules
2239
+
2240
+ </span>
2241
+ </a>
2242
+
2243
+ </li>
2244
+
2245
+ <li class="md-nav__item">
2246
+ <a href="#compressed-inputs" class="md-nav__link">
2247
+ <span class="md-ellipsis">
2248
+
2249
+ Compressed inputs
2250
+
2251
+ </span>
2252
+ </a>
2253
+
2254
+ </li>
2255
+
2256
+ </ul>
2257
+
2258
+ </nav>
2259
+ </div>
2260
+ </div>
2261
+ </div>
2262
+
2263
+
2264
+
2265
+ <div class="md-content" data-md-component="content">
2266
+
2267
+ <article class="md-content__inner md-typeset">
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+
2275
+
2276
+ <h1 id="descriptors-plugin">Descriptors Plugin<a class="headerlink" href="#descriptors-plugin" title="Permanent link">&para;</a></h1>
2277
+ <p>Package: <code>caddforge-descriptors</code></p>
2278
+ <div class="admonition info">
2279
+ <p class="admonition-title">Public source tag</p>
2280
+ <p>This page describes <code>caddforge-descriptors</code> <code>0.11.0</code>, tagged as <code>v0.11.0</code>.
2281
+ Published on PyPI; see the <a href="../version-matrix/">version matrix</a>.</p>
2282
+ </div>
2283
+ <p>The descriptors plugin provides molecular descriptor, conformer, shape/pharmacophore similarity,
2284
+ and clustering workflows.</p>
2285
+ <h2 id="requirements-and-example-status">Requirements and example status<a class="headerlink" href="#requirements-and-example-status" title="Permanent link">&para;</a></h2>
2286
+ <p>PheSA imports <code>pyocl</code>, supplied by <code>pyocl-idor&gt;=0.8.3</code>. Its OpenChemLib runtime
2287
+ requires Java 21 or newer and a configured <code>JAVA_HOME</code>.</p>
2288
+ <p>The <a href="../../examples/">example library</a> provides downloadable configuration
2289
+ templates for every workflow on this page, plus a shared Python runner. File paths
2290
+ refer to inputs you must prepare; these are not bundled research datasets. Schema
2291
+ validation does not establish scientific validity or engine availability. See the
2292
+ <a href="../version-matrix/">version matrix</a> for release tags and publication status.</p>
2293
+ <h2 id="ani-psa"><code>ani-psa</code><a class="headerlink" href="#ani-psa" title="Permanent link">&para;</a></h2>
2294
+ <p>Computes ANI-weighted 3D polar surface area values from one molecule or a batch.</p>
2295
+ <p>CLI:</p>
2296
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>descriptors<span class="w"> </span>ani-psa<span class="w"> </span>--config<span class="w"> </span>ani_psa.yaml
2297
+ </code></pre></div>
2298
+ <p>YAML:</p>
2299
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">smiles</span><span class="p">:</span><span class="w"> </span><span class="s">"CC(=O)Oc1ccccc1C(=O)O"</span>
2300
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nt">num_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">100</span>
2301
+ <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="nt">top_n</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10</span>
2302
+ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="nt">rmsd_cluster_thresh</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2303
+ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="nt">max_mmff_iters</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2304
+ <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="nt">temperature</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">298.15</span>
2305
+ <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="nt">model_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ANI2x</span>
2306
+ <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="nt">device</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">cpu</span>
2307
+ </code></pre></div>
2308
+ <p>Python:</p>
2309
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.core.execution</span><span class="w"> </span><span class="kn">import</span> <span class="n">load_result_for_job</span><span class="p">,</span> <span class="n">submit_workflow</span>
2310
+ <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.plugins</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_tool</span>
2311
+ <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
2312
+ <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"descriptors"</span><span class="p">,</span> <span class="s2">"ani-psa"</span><span class="p">)</span>
2313
+ <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="n">cfg</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">config_cls</span><span class="p">(</span><span class="n">smiles</span><span class="o">=</span><span class="s2">"CCO"</span><span class="p">,</span> <span class="n">top_n</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">)</span>
2314
+ <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="n">workflow</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">workflow_cls</span><span class="p">(</span><span class="n">cfg</span><span class="p">)</span>
2315
+ <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2316
+ <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a> <span class="n">workflow</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">backend_name</span><span class="o">=</span><span class="n">cfg</span><span class="o">.</span><span class="n">backend</span><span class="p">,</span>
2317
+ <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a> <span class="n">input_ports</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="n">spec</span><span class="o">.</span><span class="n">plugin</span><span class="p">,</span> <span class="s2">"input_ports"</span><span class="p">,</span> <span class="p">())),</span>
2318
+ <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="p">)</span>
2319
+ <a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="n">result</span> <span class="o">=</span> <span class="n">load_result_for_job</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
2320
+ <a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="k">if</span> <span class="n">result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
2321
+ <a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">metrics</span><span class="p">)</span>
2322
+ </code></pre></div>
2323
+ <p>Outputs to inspect: <code>results/results.json</code>, <code>results/results.csv</code>, <code>results/result_record.json</code>.</p>
2324
+ <h2 id="phesa"><code>phesa</code><a class="headerlink" href="#phesa" title="Permanent link">&para;</a></h2>
2325
+ <p>Computes OpenChemLib PheSA shape/pharmacophore similarities between one reference molecule and one
2326
+ or more candidate molecules. The reference can be provided as SMILES, SDF, or an encoded
2327
+ PheSA descriptor file; candidates can be
2328
+ provided as SMILES strings or single-/multi-compound SDF files.</p>
2329
+ <div class="admonition note">
2330
+ <p class="admonition-title">Reference mode</p>
2331
+ <p>When <code>reference_smiles</code> is used, the reference descriptor is generated with
2332
+ <code>DescriptorHandlerShape</code> and the configured <code>max_confs</code> and <code>pp_weight</code>. When <code>reference_sdf</code>
2333
+ is used, the reference descriptor is generated with OpenChemLib's one-conformation handler.
2334
+ Candidate descriptors always use <code>DescriptorHandlerShape</code> with the configured <code>max_confs</code> and
2335
+ <code>pp_weight</code>.</p>
2336
+ </div>
2337
+ <p>Only SDF-reference mode restores aligned coordinates into the original SDF coordinate frame.
2338
+ SMILES and encoded-reference modes retain the generated PheSA alignment frame.
2339
+ Do not combine those coordinates with a receptor's coordinates without a validated transformation.</p>
2340
+ <p>Choose exactly one of <code>reference_smiles</code>, <code>reference_sdf</code>, and <code>reference_phesa_file</code>:</p>
2341
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="c1"># Template: supply one encoded descriptor generated by a compatible public runtime.</span>
2342
+ <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="nt">reference_phesa_file</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/reference_phesa.txt</span>
2343
+ <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="nt">candidate_smiles</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"CCCO"</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="s">"CCCCO"</span><span class="p p-Indicator">]</span>
2344
+ <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="nt">max_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2345
+ <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="nt">pp_weight</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2346
+ </code></pre></div>
2347
+ <p>The whole UTF-8 file contains one encoded descriptor; surrounding whitespace is
2348
+ stripped before decoding. This mode reuses its stored reference representation.
2349
+ <code>max_confs</code> and <code>pp_weight</code> configure generated candidate descriptors. The aligned
2350
+ reference and candidate SDFs, including any merged candidate SDF, remain in the
2351
+ PheSA frame because an original SDF-coordinate transformation is unavailable.</p>
2352
+ <p>CLI:</p>
2353
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>descriptors<span class="w"> </span>phesa<span class="w"> </span>--config<span class="w"> </span>phesa.yaml
2354
+ </code></pre></div>
2355
+ <p>YAML:</p>
2356
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">reference_smiles</span><span class="p">:</span><span class="w"> </span><span class="s">"CCO"</span>
2357
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="nt">candidate_smiles</span><span class="p">:</span>
2358
+ <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"CCCO"</span>
2359
+ <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"CCCCO"</span>
2360
+ <a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="nt">max_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2361
+ <a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="nt">pp_weight</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2362
+ </code></pre></div>
2363
+ <p>SDF reference and candidate files:</p>
2364
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="nt">reference_sdf</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/reference.sdf</span>
2365
+ <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="nt">candidate_sdf_files</span><span class="p">:</span>
2366
+ <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/candidates.sdf</span>
2367
+ <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/extra_candidate.sdf</span>
2368
+ <a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="nt">max_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2369
+ <a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="nt">pp_weight</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2370
+ <a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="nt">write_merged_aligned_candidates_sdf</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2371
+ </code></pre></div>
2372
+ <p>Each valid molecule record in <code>candidate_sdf_files</code> is scored as one candidate. PHESA uses SDF
2373
+ record names as <code>candidate_id</code> values when present, falling back to the source file stem plus the
2374
+ record index.</p>
2375
+ <p>Set <code>write_merged_aligned_candidates_sdf: true</code> to additionally write a merged SDF containing all
2376
+ successfully aligned candidate molecules. The default filename is
2377
+ <code>results/aligned/aligned_candidates.sdf</code> and can be changed with
2378
+ <code>merged_aligned_candidates_sdf_name</code>.</p>
2379
+ <p>Python:</p>
2380
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.core.execution</span><span class="w"> </span><span class="kn">import</span> <span class="n">load_result_for_job</span><span class="p">,</span> <span class="n">submit_workflow</span>
2381
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.plugins</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_tool</span>
2382
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>
2383
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"descriptors"</span><span class="p">,</span> <span class="s2">"phesa"</span><span class="p">)</span>
2384
+ <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="n">cfg</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">config_cls</span><span class="p">(</span>
2385
+ <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="n">reference_smiles</span><span class="o">=</span><span class="s2">"CCO"</span><span class="p">,</span>
2386
+ <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> <span class="n">candidate_smiles</span><span class="o">=</span><span class="p">[</span><span class="s2">"CCCO"</span><span class="p">,</span> <span class="s2">"CCCCO"</span><span class="p">],</span>
2387
+ <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> <span class="n">max_confs</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
2388
+ <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a> <span class="n">pp_weight</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
2389
+ <a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">,</span>
2390
+ <a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="p">)</span>
2391
+ <a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="n">workflow</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">workflow_cls</span><span class="p">(</span><span class="n">cfg</span><span class="p">)</span>
2392
+ <a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2393
+ <a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a> <span class="n">workflow</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">backend_name</span><span class="o">=</span><span class="n">cfg</span><span class="o">.</span><span class="n">backend</span><span class="p">,</span>
2394
+ <a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a> <span class="n">input_ports</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="n">spec</span><span class="o">.</span><span class="n">plugin</span><span class="p">,</span> <span class="s2">"input_ports"</span><span class="p">,</span> <span class="p">())),</span>
2395
+ <a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a><span class="p">)</span>
2396
+ <a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a><span class="n">result</span> <span class="o">=</span> <span class="n">load_result_for_job</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
2397
+ <a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a><span class="k">if</span> <span class="n">result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
2398
+ <a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">metrics</span><span class="p">)</span>
2399
+ </code></pre></div>
2400
+ <p>Pipeline stage:</p>
2401
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="nt">stages</span><span class="p">:</span>
2402
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">phesa_similarity</span>
2403
+ <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="nt">tool</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">descriptors/phesa</span>
2404
+ <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="nt">config</span><span class="p">:</span>
2405
+ <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="nt">reference_sdf</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/reference.sdf</span>
2406
+ <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="w"> </span><span class="nt">max_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2407
+ <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="nt">pp_weight</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2408
+ <a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="w"> </span><span class="nt">inputs</span><span class="p">:</span>
2409
+ <a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="nt">candidates</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">upstream_stage.poses</span>
2410
+ </code></pre></div>
2411
+ <p>Pipeline ports:</p>
2412
+ <table>
2413
+ <thead>
2414
+ <tr>
2415
+ <th>Direction</th>
2416
+ <th>Name</th>
2417
+ <th>Kind</th>
2418
+ <th>Config/result key</th>
2419
+ </tr>
2420
+ </thead>
2421
+ <tbody>
2422
+ <tr>
2423
+ <td>Input</td>
2424
+ <td><code>reference_sdf</code></td>
2425
+ <td>file</td>
2426
+ <td><code>reference_sdf</code></td>
2427
+ </tr>
2428
+ <tr>
2429
+ <td>Input</td>
2430
+ <td><code>reference_phesa_file</code></td>
2431
+ <td>file</td>
2432
+ <td><code>reference_phesa_file</code></td>
2433
+ </tr>
2434
+ <tr>
2435
+ <td>Input</td>
2436
+ <td><code>candidates</code></td>
2437
+ <td>molecule collection</td>
2438
+ <td><code>candidate_sdf_files</code></td>
2439
+ </tr>
2440
+ <tr>
2441
+ <td>Output</td>
2442
+ <td><code>scores</code></td>
2443
+ <td>tabular scores</td>
2444
+ <td><code>scores_csv</code></td>
2445
+ </tr>
2446
+ <tr>
2447
+ <td>Output</td>
2448
+ <td><code>aligned_reference</code></td>
2449
+ <td>file</td>
2450
+ <td><code>aligned_reference_sdf</code></td>
2451
+ </tr>
2452
+ <tr>
2453
+ <td>Output</td>
2454
+ <td><code>aligned_candidates</code></td>
2455
+ <td>molecule collection</td>
2456
+ <td><code>aligned_manifest_csv</code>, column <code>aligned_candidate_sdf</code></td>
2457
+ </tr>
2458
+ <tr>
2459
+ <td>Output</td>
2460
+ <td><code>merged_aligned_candidates</code></td>
2461
+ <td>molecule collection</td>
2462
+ <td><code>merged_aligned_candidates_sdf</code></td>
2463
+ </tr>
2464
+ </tbody>
2465
+ </table>
2466
+ <p>Outputs to inspect: <code>results/results.json</code>, <code>results/scores.csv</code>,
2467
+ <code>results/aligned/reference.sdf</code>, <code>results/aligned/candidates/</code>,
2468
+ <code>results/aligned/manifest.csv</code>, optional <code>results/aligned/aligned_candidates.sdf</code>,
2469
+ <code>results/result_record.json</code>.</p>
2470
+ <h2 id="ani-conformers"><code>ani-conformers</code><a class="headerlink" href="#ani-conformers" title="Permanent link">&para;</a></h2>
2471
+ <p>Generates RDKit conformers, re-ranks representatives with ANI, and writes selected conformers to
2472
+ SDF.</p>
2473
+ <p>CLI:</p>
2474
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>descriptors<span class="w"> </span>ani-conformers<span class="w"> </span>--config<span class="w"> </span>ani_conformers.yaml
2475
+ </code></pre></div>
2476
+ <p>YAML:</p>
2477
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nt">smiles</span><span class="p">:</span><span class="w"> </span><span class="s">"CCO"</span>
2478
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="nt">num_confs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">100</span>
2479
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="nt">top_n</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10</span>
2480
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="nt">rmsd_cluster_thresh</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.5</span>
2481
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="nt">max_mmff_iters</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">200</span>
2482
+ <a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="nt">model_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ANI2x</span>
2483
+ <a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="nt">device</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">cpu</span>
2484
+ <a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="nt">output_sdf_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ranked_conformers.sdf</span>
2485
+ </code></pre></div>
2486
+ <p>Python:</p>
2487
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.core.execution</span><span class="w"> </span><span class="kn">import</span> <span class="n">load_result_for_job</span><span class="p">,</span> <span class="n">submit_workflow</span>
2488
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.plugins</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_tool</span>
2489
+ <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>
2490
+ <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"descriptors"</span><span class="p">,</span> <span class="s2">"ani-conformers"</span><span class="p">)</span>
2491
+ <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="n">cfg</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">config_cls</span><span class="p">(</span><span class="n">smiles</span><span class="o">=</span><span class="s2">"CCO"</span><span class="p">,</span> <span class="n">top_n</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">num_confs</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">)</span>
2492
+ <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="n">workflow</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">workflow_cls</span><span class="p">(</span><span class="n">cfg</span><span class="p">)</span>
2493
+ <a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2494
+ <a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a> <span class="n">workflow</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">backend_name</span><span class="o">=</span><span class="n">cfg</span><span class="o">.</span><span class="n">backend</span><span class="p">,</span>
2495
+ <a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a> <span class="n">input_ports</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="n">spec</span><span class="o">.</span><span class="n">plugin</span><span class="p">,</span> <span class="s2">"input_ports"</span><span class="p">,</span> <span class="p">())),</span>
2496
+ <a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="p">)</span>
2497
+ <a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a><span class="n">result</span> <span class="o">=</span> <span class="n">load_result_for_job</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
2498
+ <a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a><span class="k">if</span> <span class="n">result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
2499
+ <a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></a> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">paths</span><span class="p">[</span><span class="s2">"ranked_conformers_sdf"</span><span class="p">])</span>
2500
+ </code></pre></div>
2501
+ <p>Outputs to inspect: <code>results/results.json</code>, <code>results/ranked_conformers.sdf</code>,
2502
+ <code>results/result_record.json</code>.</p>
2503
+ <h2 id="cluster-molecules"><code>cluster-molecules</code><a class="headerlink" href="#cluster-molecules" title="Permanent link">&para;</a></h2>
2504
+ <p>Clusters molecules from SMILES/SDF/CSV/TSV input using fingerprint or scaffold algorithms.</p>
2505
+ <p>CLI:</p>
2506
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>descriptors<span class="w"> </span>cluster-molecules<span class="w"> </span>--config<span class="w"> </span>cluster_molecules.yaml
2507
+ </code></pre></div>
2508
+ <p>YAML:</p>
2509
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="nt">input_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/molecules.csv</span>
2510
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="nt">smiles_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">smiles</span>
2511
+ <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="nt">id_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">compound_id</span>
2512
+ <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="nt">algorithm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">kmedoids</span>
2513
+ <a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="nt">fingerprint_radius</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</span>
2514
+ <a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a><span class="nt">fingerprint_bits</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2048</span>
2515
+ <a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a><span class="nt">kmedoids_n_clusters</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">100</span>
2516
+ <a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="nt">kmedoids_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">auto</span>
2517
+ <a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a><span class="nt">kmedoids_max_exact_n</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">5000</span>
2518
+ <a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a><span class="nt">kmedoids_max_exact_pairs</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">25000000</span>
2519
+ </code></pre></div>
2520
+ <p>Python:</p>
2521
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.core.execution</span><span class="w"> </span><span class="kn">import</span> <span class="n">load_result_for_job</span><span class="p">,</span> <span class="n">submit_workflow</span>
2522
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">caddforge.plugins</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_tool</span>
2523
+ <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>
2524
+ <a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"descriptors"</span><span class="p">,</span> <span class="s2">"cluster-molecules"</span><span class="p">)</span>
2525
+ <a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="n">cfg</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">config_cls</span><span class="p">(</span>
2526
+ <a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a> <span class="n">input_path</span><span class="o">=</span><span class="s2">"data/molecules.csv"</span><span class="p">,</span>
2527
+ <a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> <span class="n">smiles_column</span><span class="o">=</span><span class="s2">"smiles"</span><span class="p">,</span>
2528
+ <a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a> <span class="n">algorithm</span><span class="o">=</span><span class="s2">"kmedoids"</span><span class="p">,</span>
2529
+ <a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> <span class="n">kmedoids_n_clusters</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
2530
+ <a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">,</span>
2531
+ <a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a><span class="p">)</span>
2532
+ <a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a><span class="n">workflow</span> <span class="o">=</span> <span class="n">spec</span><span class="o">.</span><span class="n">workflow_cls</span><span class="p">(</span><span class="n">cfg</span><span class="p">)</span>
2533
+ <a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2534
+ <a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a> <span class="n">workflow</span><span class="p">,</span> <span class="n">cfg</span><span class="p">,</span> <span class="n">backend_name</span><span class="o">=</span><span class="n">cfg</span><span class="o">.</span><span class="n">backend</span><span class="p">,</span>
2535
+ <a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a> <span class="n">input_ports</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="n">spec</span><span class="o">.</span><span class="n">plugin</span><span class="p">,</span> <span class="s2">"input_ports"</span><span class="p">,</span> <span class="p">())),</span>
2536
+ <a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a><span class="p">)</span>
2537
+ <a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a><span class="n">result</span> <span class="o">=</span> <span class="n">load_result_for_job</span><span class="p">(</span><span class="n">job</span><span class="p">)</span>
2538
+ <a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a><span class="k">if</span> <span class="n">result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
2539
+ <a id="__codelineno-14-19" name="__codelineno-14-19" href="#__codelineno-14-19"></a> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">metrics</span><span class="p">)</span>
2540
+ </code></pre></div>
2541
+ <p>Outputs to inspect: <code>results/assignments.csv</code>, <code>results/centroids.csv</code>,
2542
+ <code>results/summary.json</code>, <code>results/result_record.json</code>.</p>
2543
+ <h2 id="compressed-inputs">Compressed inputs<a class="headerlink" href="#compressed-inputs" title="Permanent link">&para;</a></h2>
2544
+ <p>File-based SMILES, SDF, CSV, and TSV inputs may use a trailing <code>.gz</code>. This includes nested
2545
+ cluster-molecule inputs. CADDForge expands wrappers in runtime scratch; plain inputs and native tool
2546
+ formats remain unchanged.</p>
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+ </article>
2561
+ </div>
2562
+
2563
+
2564
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2565
+ </div>
2566
+
2567
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
2568
+
2569
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
2570
+ Back to top
2571
+ </button>
2572
+
2573
+ </main>
2574
+
2575
+ <footer class="md-footer">
2576
+
2577
+ <div class="md-footer-meta md-typeset">
2578
+ <div class="md-footer-meta__inner md-grid">
2579
+ <div class="md-copyright">
2580
+
2581
+
2582
+ Made with
2583
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2584
+ Material for MkDocs
2585
+ </a>
2586
+
2587
+ </div>
2588
+
2589
+ </div>
2590
+ </div>
2591
+ </footer>
2592
+
2593
+ </div>
2594
+ <div class="md-dialog" data-md-component="dialog">
2595
+ <div class="md-dialog__inner md-typeset"></div>
2596
+ </div>
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+ <script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.instant", "navigation.sections", "navigation.indexes", "navigation.top", "search.highlight", "search.suggest", "content.code.copy"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
2603
+
2604
+
2605
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
2606
+
2607
+
2608
+ </body>
2609
+ </html>