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,2815 @@
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/ml/">
14
+
15
+
16
+ <link rel="prev" href="../qm/">
17
+
18
+
19
+ <link rel="next" href="../datascience/">
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>ML - 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="#ml-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
+ ML
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
+ <li class="md-nav__item">
1168
+ <a href="../descriptors/" class="md-nav__link">
1169
+
1170
+
1171
+
1172
+ <span class="md-ellipsis">
1173
+
1174
+
1175
+ Descriptors
1176
+
1177
+
1178
+
1179
+ </span>
1180
+
1181
+
1182
+
1183
+ </a>
1184
+ </li>
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+
1194
+
1195
+ <li class="md-nav__item">
1196
+ <a href="../md/" class="md-nav__link">
1197
+
1198
+
1199
+
1200
+ <span class="md-ellipsis">
1201
+
1202
+
1203
+ MD
1204
+
1205
+
1206
+
1207
+ </span>
1208
+
1209
+
1210
+
1211
+ </a>
1212
+ </li>
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+ <li class="md-nav__item">
1224
+ <a href="../fep/" class="md-nav__link">
1225
+
1226
+
1227
+
1228
+ <span class="md-ellipsis">
1229
+
1230
+
1231
+ FEP
1232
+
1233
+
1234
+
1235
+ </span>
1236
+
1237
+
1238
+
1239
+ </a>
1240
+ </li>
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+ <li class="md-nav__item">
1252
+ <a href="../qm/" class="md-nav__link">
1253
+
1254
+
1255
+
1256
+ <span class="md-ellipsis">
1257
+
1258
+
1259
+ QM
1260
+
1261
+
1262
+
1263
+ </span>
1264
+
1265
+
1266
+
1267
+ </a>
1268
+ </li>
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+ <li class="md-nav__item md-nav__item--active">
1282
+
1283
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1290
+
1291
+
1292
+
1293
+ <span class="md-ellipsis">
1294
+
1295
+
1296
+ ML
1297
+
1298
+
1299
+
1300
+ </span>
1301
+
1302
+
1303
+
1304
+ <span class="md-nav__icon md-icon"></span>
1305
+ </label>
1306
+
1307
+ <a href="./" class="md-nav__link md-nav__link--active">
1308
+
1309
+
1310
+
1311
+ <span class="md-ellipsis">
1312
+
1313
+
1314
+ ML
1315
+
1316
+
1317
+
1318
+ </span>
1319
+
1320
+
1321
+
1322
+ </a>
1323
+
1324
+
1325
+
1326
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+ <label class="md-nav__title" for="__toc">
1334
+ <span class="md-nav__icon md-icon"></span>
1335
+ Table of contents
1336
+ </label>
1337
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1338
+
1339
+ <li class="md-nav__item">
1340
+ <a href="#requirements-and-example-status" class="md-nav__link">
1341
+ <span class="md-ellipsis">
1342
+
1343
+ Requirements and example status
1344
+
1345
+ </span>
1346
+ </a>
1347
+
1348
+ </li>
1349
+
1350
+ <li class="md-nav__item">
1351
+ <a href="#simple-gp" class="md-nav__link">
1352
+ <span class="md-ellipsis">
1353
+
1354
+ simple-gp
1355
+
1356
+ </span>
1357
+ </a>
1358
+
1359
+ </li>
1360
+
1361
+ <li class="md-nav__item">
1362
+ <a href="#pca" class="md-nav__link">
1363
+ <span class="md-ellipsis">
1364
+
1365
+ pca
1366
+
1367
+ </span>
1368
+ </a>
1369
+
1370
+ </li>
1371
+
1372
+ <li class="md-nav__item">
1373
+ <a href="#model-zoo" class="md-nav__link">
1374
+ <span class="md-ellipsis">
1375
+
1376
+ model-zoo
1377
+
1378
+ </span>
1379
+ </a>
1380
+
1381
+ </li>
1382
+
1383
+ <li class="md-nav__item">
1384
+ <a href="#model-factory" class="md-nav__link">
1385
+ <span class="md-ellipsis">
1386
+
1387
+ model-factory
1388
+
1389
+ </span>
1390
+ </a>
1391
+
1392
+ <nav class="md-nav" aria-label="model-factory">
1393
+ <ul class="md-nav__list">
1394
+
1395
+ <li class="md-nav__item">
1396
+ <a href="#model-factory-configuration" class="md-nav__link">
1397
+ <span class="md-ellipsis">
1398
+
1399
+ Model-factory configuration
1400
+
1401
+ </span>
1402
+ </a>
1403
+
1404
+ </li>
1405
+
1406
+ </ul>
1407
+ </nav>
1408
+
1409
+ </li>
1410
+
1411
+ <li class="md-nav__item">
1412
+ <a href="#explore-classifier" class="md-nav__link">
1413
+ <span class="md-ellipsis">
1414
+
1415
+ explore-classifier
1416
+
1417
+ </span>
1418
+ </a>
1419
+
1420
+ </li>
1421
+
1422
+ <li class="md-nav__item">
1423
+ <a href="#compressed-inputs" class="md-nav__link">
1424
+ <span class="md-ellipsis">
1425
+
1426
+ Compressed inputs
1427
+
1428
+ </span>
1429
+ </a>
1430
+
1431
+ </li>
1432
+
1433
+ </ul>
1434
+
1435
+ </nav>
1436
+
1437
+ </li>
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+ <li class="md-nav__item">
1449
+ <a href="../datascience/" class="md-nav__link">
1450
+
1451
+
1452
+
1453
+ <span class="md-ellipsis">
1454
+
1455
+
1456
+ Data Science
1457
+
1458
+
1459
+
1460
+ </span>
1461
+
1462
+
1463
+
1464
+ </a>
1465
+ </li>
1466
+
1467
+
1468
+
1469
+
1470
+ </ul>
1471
+ </nav>
1472
+
1473
+ </li>
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1500
+
1501
+
1502
+
1503
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1504
+
1505
+
1506
+ <div class="md-nav__link md-nav__container">
1507
+ <a href="../../gui/" class="md-nav__link ">
1508
+
1509
+
1510
+
1511
+ <span class="md-ellipsis">
1512
+
1513
+
1514
+ GUI
1515
+
1516
+
1517
+
1518
+ </span>
1519
+
1520
+
1521
+
1522
+ </a>
1523
+
1524
+
1525
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="">
1526
+ <span class="md-nav__icon md-icon"></span>
1527
+ </label>
1528
+
1529
+ </div>
1530
+
1531
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1532
+ <label class="md-nav__title" for="__nav_7">
1533
+ <span class="md-nav__icon md-icon"></span>
1534
+
1535
+
1536
+ GUI
1537
+
1538
+
1539
+ </label>
1540
+ <ul class="md-nav__list" data-md-scrollfix>
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+ <li class="md-nav__item">
1549
+ <a href="../../gui/walkthrough/" class="md-nav__link">
1550
+
1551
+
1552
+
1553
+ <span class="md-ellipsis">
1554
+
1555
+
1556
+ Walkthrough
1557
+
1558
+
1559
+
1560
+ </span>
1561
+
1562
+
1563
+
1564
+ </a>
1565
+ </li>
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+ <li class="md-nav__item">
1577
+ <a href="../../gui/plugin-authoring/" class="md-nav__link">
1578
+
1579
+
1580
+
1581
+ <span class="md-ellipsis">
1582
+
1583
+
1584
+ Plugin GUI Authoring
1585
+
1586
+
1587
+
1588
+ </span>
1589
+
1590
+
1591
+
1592
+ </a>
1593
+ </li>
1594
+
1595
+
1596
+
1597
+
1598
+ </ul>
1599
+ </nav>
1600
+
1601
+ </li>
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1630
+
1631
+
1632
+
1633
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
1634
+
1635
+
1636
+ <div class="md-nav__link md-nav__container">
1637
+ <a href="../../reference/" class="md-nav__link ">
1638
+
1639
+
1640
+
1641
+ <span class="md-ellipsis">
1642
+
1643
+
1644
+ Reference
1645
+
1646
+
1647
+
1648
+ </span>
1649
+
1650
+
1651
+
1652
+ </a>
1653
+
1654
+
1655
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
1656
+ <span class="md-nav__icon md-icon"></span>
1657
+ </label>
1658
+
1659
+ </div>
1660
+
1661
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
1662
+ <label class="md-nav__title" for="__nav_8">
1663
+ <span class="md-nav__icon md-icon"></span>
1664
+
1665
+
1666
+ Reference
1667
+
1668
+
1669
+ </label>
1670
+ <ul class="md-nav__list" data-md-scrollfix>
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+ <li class="md-nav__item">
1679
+ <a href="../../reference/api/" class="md-nav__link">
1680
+
1681
+
1682
+
1683
+ <span class="md-ellipsis">
1684
+
1685
+
1686
+ Public Python API
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/" class="md-nav__link">
1708
+
1709
+
1710
+
1711
+ <span class="md-ellipsis">
1712
+
1713
+
1714
+ Example Library
1715
+
1716
+
1717
+
1718
+ </span>
1719
+
1720
+
1721
+
1722
+ </a>
1723
+ </li>
1724
+
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+ <li class="md-nav__item">
1735
+ <a href="../../examples/quickstart/" class="md-nav__link">
1736
+
1737
+
1738
+
1739
+ <span class="md-ellipsis">
1740
+
1741
+
1742
+ Example Data Provenance
1743
+
1744
+
1745
+
1746
+ </span>
1747
+
1748
+
1749
+
1750
+ </a>
1751
+ </li>
1752
+
1753
+
1754
+
1755
+
1756
+ </ul>
1757
+ </nav>
1758
+
1759
+ </li>
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1788
+
1789
+
1790
+
1791
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
1792
+
1793
+
1794
+ <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
1795
+
1796
+
1797
+
1798
+ <span class="md-ellipsis">
1799
+
1800
+
1801
+ Explanation
1802
+
1803
+
1804
+
1805
+ </span>
1806
+
1807
+
1808
+
1809
+ <span class="md-nav__icon md-icon"></span>
1810
+ </label>
1811
+
1812
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
1813
+ <label class="md-nav__title" for="__nav_9">
1814
+ <span class="md-nav__icon md-icon"></span>
1815
+
1816
+
1817
+ Explanation
1818
+
1819
+
1820
+ </label>
1821
+ <ul class="md-nav__list" data-md-scrollfix>
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+ <li class="md-nav__item">
1830
+ <a href="../../explanation/reproducibility/" class="md-nav__link">
1831
+
1832
+
1833
+
1834
+ <span class="md-ellipsis">
1835
+
1836
+
1837
+ Reproducibility
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/references/" class="md-nav__link">
1859
+
1860
+
1861
+
1862
+ <span class="md-ellipsis">
1863
+
1864
+
1865
+ Method References
1866
+
1867
+
1868
+
1869
+ </span>
1870
+
1871
+
1872
+
1873
+ </a>
1874
+ </li>
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+ <li class="md-nav__item">
1886
+ <a href="../../explanation/third-party-notices/" class="md-nav__link">
1887
+
1888
+
1889
+
1890
+ <span class="md-ellipsis">
1891
+
1892
+
1893
+ Third-party Notices
1894
+
1895
+
1896
+
1897
+ </span>
1898
+
1899
+
1900
+
1901
+ </a>
1902
+ </li>
1903
+
1904
+
1905
+
1906
+
1907
+ </ul>
1908
+ </nav>
1909
+
1910
+ </li>
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1947
+
1948
+
1949
+
1950
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
1951
+
1952
+
1953
+ <div class="md-nav__link md-nav__container">
1954
+ <a href="../../development/" class="md-nav__link ">
1955
+
1956
+
1957
+
1958
+ <span class="md-ellipsis">
1959
+
1960
+
1961
+ Development
1962
+
1963
+
1964
+
1965
+ </span>
1966
+
1967
+
1968
+
1969
+ </a>
1970
+
1971
+
1972
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="">
1973
+ <span class="md-nav__icon md-icon"></span>
1974
+ </label>
1975
+
1976
+ </div>
1977
+
1978
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
1979
+ <label class="md-nav__title" for="__nav_10">
1980
+ <span class="md-nav__icon md-icon"></span>
1981
+
1982
+
1983
+ Development
1984
+
1985
+
1986
+ </label>
1987
+ <ul class="md-nav__list" data-md-scrollfix>
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+ <li class="md-nav__item">
1996
+ <a href="../../development/release-notes/" class="md-nav__link">
1997
+
1998
+
1999
+
2000
+ <span class="md-ellipsis">
2001
+
2002
+
2003
+ Release Notes
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/tool-authoring/" class="md-nav__link">
2025
+
2026
+
2027
+
2028
+ <span class="md-ellipsis">
2029
+
2030
+
2031
+ Tool Authoring
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/documentation/" class="md-nav__link">
2053
+
2054
+
2055
+
2056
+ <span class="md-ellipsis">
2057
+
2058
+
2059
+ Documentation
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/contributing/" class="md-nav__link">
2081
+
2082
+
2083
+
2084
+ <span class="md-ellipsis">
2085
+
2086
+
2087
+ Contributing
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/security/" class="md-nav__link">
2109
+
2110
+
2111
+
2112
+ <span class="md-ellipsis">
2113
+
2114
+
2115
+ Security Reporting
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/release-readiness/" class="md-nav__link">
2137
+
2138
+
2139
+
2140
+ <span class="md-ellipsis">
2141
+
2142
+
2143
+ Release Readiness
2144
+
2145
+
2146
+
2147
+ </span>
2148
+
2149
+
2150
+
2151
+ </a>
2152
+ </li>
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+ <li class="md-nav__item">
2164
+ <a href="../../development/ci-publishing/" class="md-nav__link">
2165
+
2166
+
2167
+
2168
+ <span class="md-ellipsis">
2169
+
2170
+
2171
+ CI and Publishing
2172
+
2173
+
2174
+
2175
+ </span>
2176
+
2177
+
2178
+
2179
+ </a>
2180
+ </li>
2181
+
2182
+
2183
+
2184
+
2185
+ </ul>
2186
+ </nav>
2187
+
2188
+ </li>
2189
+
2190
+
2191
+
2192
+ </ul>
2193
+ </nav>
2194
+ </div>
2195
+ </div>
2196
+ </div>
2197
+
2198
+
2199
+
2200
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2201
+ <div class="md-sidebar__scrollwrap">
2202
+ <div class="md-sidebar__inner">
2203
+
2204
+
2205
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+ <label class="md-nav__title" for="__toc">
2213
+ <span class="md-nav__icon md-icon"></span>
2214
+ Table of contents
2215
+ </label>
2216
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2217
+
2218
+ <li class="md-nav__item">
2219
+ <a href="#requirements-and-example-status" class="md-nav__link">
2220
+ <span class="md-ellipsis">
2221
+
2222
+ Requirements and example status
2223
+
2224
+ </span>
2225
+ </a>
2226
+
2227
+ </li>
2228
+
2229
+ <li class="md-nav__item">
2230
+ <a href="#simple-gp" class="md-nav__link">
2231
+ <span class="md-ellipsis">
2232
+
2233
+ simple-gp
2234
+
2235
+ </span>
2236
+ </a>
2237
+
2238
+ </li>
2239
+
2240
+ <li class="md-nav__item">
2241
+ <a href="#pca" class="md-nav__link">
2242
+ <span class="md-ellipsis">
2243
+
2244
+ pca
2245
+
2246
+ </span>
2247
+ </a>
2248
+
2249
+ </li>
2250
+
2251
+ <li class="md-nav__item">
2252
+ <a href="#model-zoo" class="md-nav__link">
2253
+ <span class="md-ellipsis">
2254
+
2255
+ model-zoo
2256
+
2257
+ </span>
2258
+ </a>
2259
+
2260
+ </li>
2261
+
2262
+ <li class="md-nav__item">
2263
+ <a href="#model-factory" class="md-nav__link">
2264
+ <span class="md-ellipsis">
2265
+
2266
+ model-factory
2267
+
2268
+ </span>
2269
+ </a>
2270
+
2271
+ <nav class="md-nav" aria-label="model-factory">
2272
+ <ul class="md-nav__list">
2273
+
2274
+ <li class="md-nav__item">
2275
+ <a href="#model-factory-configuration" class="md-nav__link">
2276
+ <span class="md-ellipsis">
2277
+
2278
+ Model-factory configuration
2279
+
2280
+ </span>
2281
+ </a>
2282
+
2283
+ </li>
2284
+
2285
+ </ul>
2286
+ </nav>
2287
+
2288
+ </li>
2289
+
2290
+ <li class="md-nav__item">
2291
+ <a href="#explore-classifier" class="md-nav__link">
2292
+ <span class="md-ellipsis">
2293
+
2294
+ explore-classifier
2295
+
2296
+ </span>
2297
+ </a>
2298
+
2299
+ </li>
2300
+
2301
+ <li class="md-nav__item">
2302
+ <a href="#compressed-inputs" class="md-nav__link">
2303
+ <span class="md-ellipsis">
2304
+
2305
+ Compressed inputs
2306
+
2307
+ </span>
2308
+ </a>
2309
+
2310
+ </li>
2311
+
2312
+ </ul>
2313
+
2314
+ </nav>
2315
+ </div>
2316
+ </div>
2317
+ </div>
2318
+
2319
+
2320
+
2321
+ <div class="md-content" data-md-component="content">
2322
+
2323
+ <article class="md-content__inner md-typeset">
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+ <h1 id="ml-plugin">ML Plugin<a class="headerlink" href="#ml-plugin" title="Permanent link">&para;</a></h1>
2333
+ <p>Package: <code>caddforge-ml</code></p>
2334
+ <div class="admonition info">
2335
+ <p class="admonition-title">Public source tag</p>
2336
+ <p>This page describes <code>caddforge-ml</code> <code>0.4.0</code>, tagged as <code>v0.4.0</code>.
2337
+ Published on PyPI; see the <a href="../version-matrix/">version matrix</a>.</p>
2338
+ </div>
2339
+ <p>The ML plugin exposes model training, prediction, dimensionality reduction, model sweeps, and
2340
+ classifier threshold exploration workflows.</p>
2341
+ <h2 id="requirements-and-example-status">Requirements and example status<a class="headerlink" href="#requirements-and-example-status" title="Permanent link">&para;</a></h2>
2342
+ <p>The <a href="../../examples/">example library</a> provides downloadable configuration
2343
+ templates for every workflow on this page, plus a shared Python runner. File paths
2344
+ refer to inputs you must prepare; these are not bundled research datasets. Schema
2345
+ validation does not establish scientific validity or engine availability. See the
2346
+ <a href="../version-matrix/">version matrix</a> for release tags and publication status.</p>
2347
+ <h2 id="simple-gp"><code>simple-gp</code><a class="headerlink" href="#simple-gp" title="Permanent link">&para;</a></h2>
2348
+ <p>Trains and predicts with a simple Gaussian process regression workflow.</p>
2349
+ <p>CLI:</p>
2350
+ <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>ml<span class="w"> </span>simple-gp<span class="w"> </span>--config<span class="w"> </span>simple_gp.yaml
2351
+ </code></pre></div>
2352
+ <p>YAML:</p>
2353
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">train_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/train.csv</span>
2354
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nt">target_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">y</span>
2355
+ <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="nt">feature_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">f1</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f2</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f3</span><span class="p p-Indicator">]</span>
2356
+ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></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>
2357
+ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="nt">ignore_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">id</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">comment</span><span class="p p-Indicator">]</span>
2358
+ <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="nt">fingerprint_types</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">morgan</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">atompair</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">featmorgan</span><span class="p p-Indicator">]</span>
2359
+ <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="nt">kernel</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tanimoto</span>
2360
+ <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="nt">noise</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.05</span>
2361
+ <a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="nt">test_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/test.csv</span>
2362
+ <a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="nt">save_report</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2363
+ <a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a><span class="nt">log_targets</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
2364
+ <a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a><span class="nt">generate_scatter_plot</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2365
+ <a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a><span class="nt">scatter_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gp_scatter.html</span>
2366
+ <a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a><span class="nt">mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">train</span>
2367
+ <a id="__codelineno-1-15" name="__codelineno-1-15" href="#__codelineno-1-15"></a><span class="nt">model_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">simple_gp_model.joblib</span>
2368
+ <a id="__codelineno-1-16" name="__codelineno-1-16" href="#__codelineno-1-16"></a><span class="nt">id_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">id</span>
2369
+ </code></pre></div>
2370
+ <p>Python:</p>
2371
+ <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>
2372
+ <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>
2373
+ <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
2374
+ <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">"ml"</span><span class="p">,</span> <span class="s2">"simple-gp"</span><span class="p">)</span>
2375
+ <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">train_path</span><span class="o">=</span><span class="s2">"data/train.csv"</span><span class="p">,</span> <span class="n">target_column</span><span class="o">=</span><span class="s2">"y"</span><span class="p">,</span> <span class="n">test_path</span><span class="o">=</span><span class="s2">"data/test.csv"</span><span class="p">)</span>
2376
+ <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>
2377
+ <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>
2378
+ <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>
2379
+ <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>
2380
+ <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="p">)</span>
2381
+ <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>
2382
+ <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>
2383
+ <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>
2384
+ </code></pre></div>
2385
+ <p>Outputs to inspect: <code>results/predictions.csv</code>, <code>results/results.json</code>,
2386
+ <code>results/result_record.json</code>.</p>
2387
+ <h2 id="pca"><code>pca</code><a class="headerlink" href="#pca" title="Permanent link">&para;</a></h2>
2388
+ <p>Runs principal component analysis over configured feature columns.</p>
2389
+ <p>CLI:</p>
2390
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>ml<span class="w"> </span>pca<span class="w"> </span>--config<span class="w"> </span>pca.yaml
2391
+ </code></pre></div>
2392
+ <p>YAML:</p>
2393
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">data_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/features.csv</span>
2394
+ <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="nt">feature_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">f1</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f2</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f3</span><span class="p p-Indicator">]</span>
2395
+ <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="nt">ignore_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">id</span><span class="p p-Indicator">]</span>
2396
+ <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="nt">n_components</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">5</span>
2397
+ <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="nt">standardize</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2398
+ <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="nt">drop_missing_rows</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2399
+ <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a><span class="nt">scores_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pca_scores.csv</span>
2400
+ <a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a><span class="nt">components_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pca_components.csv</span>
2401
+ <a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a><span class="nt">results_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">results.json</span>
2402
+ </code></pre></div>
2403
+ <p>Python:</p>
2404
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-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>
2405
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-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>
2406
+ <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>
2407
+ <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"ml"</span><span class="p">,</span> <span class="s2">"pca"</span><span class="p">)</span>
2408
+ <a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-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">data_path</span><span class="o">=</span><span class="s2">"data/features.csv"</span><span class="p">,</span> <span class="n">n_components</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">)</span>
2409
+ <a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-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>
2410
+ <a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2411
+ <a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-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>
2412
+ <a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-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>
2413
+ <a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="p">)</span>
2414
+ <a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-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>
2415
+ <a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-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>
2416
+ <a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-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>
2417
+ </code></pre></div>
2418
+ <p>Outputs to inspect: <code>results/pca_scores.csv</code>, <code>results/pca_components.csv</code>,
2419
+ <code>results/results.json</code>.</p>
2420
+ <h2 id="model-zoo"><code>model-zoo</code><a class="headerlink" href="#model-zoo" title="Permanent link">&para;</a></h2>
2421
+ <p>Runs a scikit-learn model from the model registry for regression or classification.</p>
2422
+ <p>CLI:</p>
2423
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>ml<span class="w"> </span>model-zoo<span class="w"> </span>--config<span class="w"> </span>model_zoo.yaml
2424
+ </code></pre></div>
2425
+ <p>YAML:</p>
2426
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">train_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/train.csv</span>
2427
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="nt">target_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">y</span>
2428
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="nt">feature_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">f1</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f2</span><span class="p p-Indicator">]</span>
2429
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="nt">model_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">random_forest</span>
2430
+ <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="nt">task</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">regression</span>
2431
+ <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="nt">test_size</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.2</span>
2432
+ <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="nt">random_state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">123</span>
2433
+ <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="nt">standardize_targets</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
2434
+ <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="nt">target_transform</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">none</span>
2435
+ <a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="nt">positive_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
2436
+ <a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="nt">predictions_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">predictions.csv</span>
2437
+ <a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="nt">results_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">results.json</span>
2438
+ <a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a><span class="nt">metrics_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">metrics.json</span>
2439
+ <a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a><span class="nt">mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">train</span>
2440
+ <a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a><span class="nt">model_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">artifacts/model.joblib</span>
2441
+ </code></pre></div>
2442
+ <p>Python:</p>
2443
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-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>
2444
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-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>
2445
+ <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a>
2446
+ <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="n">spec</span> <span class="o">=</span> <span class="n">get_tool</span><span class="p">(</span><span class="s2">"ml"</span><span class="p">,</span> <span class="s2">"model-zoo"</span><span class="p">)</span>
2447
+ <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-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>
2448
+ <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="n">train_path</span><span class="o">=</span><span class="s2">"data/train.csv"</span><span class="p">,</span>
2449
+ <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a> <span class="n">target_column</span><span class="o">=</span><span class="s2">"y"</span><span class="p">,</span>
2450
+ <a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a> <span class="n">model_name</span><span class="o">=</span><span class="s2">"random_forest"</span><span class="p">,</span>
2451
+ <a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a> <span class="n">task</span><span class="o">=</span><span class="s2">"regression"</span><span class="p">,</span>
2452
+ <a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">,</span>
2453
+ <a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a><span class="p">)</span>
2454
+ <a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-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>
2455
+ <a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2456
+ <a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-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>
2457
+ <a id="__codelineno-8-15" name="__codelineno-8-15" href="#__codelineno-8-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>
2458
+ <a id="__codelineno-8-16" name="__codelineno-8-16" href="#__codelineno-8-16"></a><span class="p">)</span>
2459
+ <a id="__codelineno-8-17" name="__codelineno-8-17" href="#__codelineno-8-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>
2460
+ <a id="__codelineno-8-18" name="__codelineno-8-18" href="#__codelineno-8-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>
2461
+ <a id="__codelineno-8-19" name="__codelineno-8-19" href="#__codelineno-8-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>
2462
+ </code></pre></div>
2463
+ <p>Outputs to inspect: <code>results/predictions.csv</code>, <code>results/metrics.json</code>,
2464
+ <code>results/results.json</code>, <code>artifacts/model.joblib</code>.</p>
2465
+ <h2 id="model-factory"><code>model-factory</code><a class="headerlink" href="#model-factory" title="Permanent link">&para;</a></h2>
2466
+ <p>Runs multiple model-zoo training jobs against the same data and aggregates metrics, uncertainty
2467
+ diagnostics, confusion summaries, and model artifacts. Predict-only execution is provided by
2468
+ <code>model-zoo</code>, not by the factory.</p>
2469
+ <p>CLI:</p>
2470
+ <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>ml<span class="w"> </span>model-factory<span class="w"> </span>--config<span class="w"> </span>model_factory.yaml
2471
+ </code></pre></div>
2472
+ <p>YAML:</p>
2473
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nt">train_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data/train.csv</span>
2474
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="nt">target_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">y</span>
2475
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="nt">task</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">regression</span>
2476
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="nt">feature_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">f1</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">f2</span><span class="p p-Indicator">]</span>
2477
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="nt">ignore_columns</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">compound_id</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">measured_at</span><span class="p p-Indicator">]</span>
2478
+ <a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="nt">test_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">null</span>
2479
+ <a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></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>
2480
+ <a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="nt">fingerprint_types</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">morgan</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">atompair</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">featmorgan</span><span class="p p-Indicator">]</span>
2481
+ <a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="nt">fp_bits</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2048</span>
2482
+ <a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a><span class="nt">fp_radius</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</span>
2483
+ <a id="__codelineno-10-11" name="__codelineno-10-11" href="#__codelineno-10-11"></a><span class="nt">fp_use_chirality</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2484
+ <a id="__codelineno-10-12" name="__codelineno-10-12" href="#__codelineno-10-12"></a><span class="nt">model_names</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="nv">ridge</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">random_forest</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="nv">xgboost</span><span class="p p-Indicator">]</span>
2485
+ <a id="__codelineno-10-13" name="__codelineno-10-13" href="#__codelineno-10-13"></a><span class="nt">model_params</span><span class="p">:</span>
2486
+ <a id="__codelineno-10-14" name="__codelineno-10-14" href="#__codelineno-10-14"></a><span class="w"> </span><span class="nt">random_forest</span><span class="p">:</span>
2487
+ <a id="__codelineno-10-15" name="__codelineno-10-15" href="#__codelineno-10-15"></a><span class="w"> </span><span class="nt">n_estimators</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">500</span>
2488
+ <a id="__codelineno-10-16" name="__codelineno-10-16" href="#__codelineno-10-16"></a><span class="w"> </span><span class="nt">random_state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">123</span>
2489
+ <a id="__codelineno-10-17" name="__codelineno-10-17" href="#__codelineno-10-17"></a><span class="nt">calibrate</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
2490
+ <a id="__codelineno-10-18" name="__codelineno-10-18" href="#__codelineno-10-18"></a><span class="nt">calibrate_method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">sigmoid</span>
2491
+ <a id="__codelineno-10-19" name="__codelineno-10-19" href="#__codelineno-10-19"></a><span class="nt">test_size</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">0.2</span>
2492
+ <a id="__codelineno-10-20" name="__codelineno-10-20" href="#__codelineno-10-20"></a><span class="nt">random_state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">123</span>
2493
+ <a id="__codelineno-10-21" name="__codelineno-10-21" href="#__codelineno-10-21"></a><span class="nt">predictions_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">predictions.csv</span>
2494
+ <a id="__codelineno-10-22" name="__codelineno-10-22" href="#__codelineno-10-22"></a><span class="nt">results_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">results.json</span>
2495
+ <a id="__codelineno-10-23" name="__codelineno-10-23" href="#__codelineno-10-23"></a><span class="nt">metrics_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">metrics.json</span>
2496
+ <a id="__codelineno-10-24" name="__codelineno-10-24" href="#__codelineno-10-24"></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>
2497
+ <a id="__codelineno-10-25" name="__codelineno-10-25" href="#__codelineno-10-25"></a><span class="nt">classification_thresholds</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">null</span>
2498
+ <a id="__codelineno-10-26" name="__codelineno-10-26" href="#__codelineno-10-26"></a><span class="nt">time_column</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">measured_at</span>
2499
+ <a id="__codelineno-10-27" name="__codelineno-10-27" href="#__codelineno-10-27"></a><span class="nt">standardize_targets</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
2500
+ <a id="__codelineno-10-28" name="__codelineno-10-28" href="#__codelineno-10-28"></a><span class="nt">positive_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">null</span>
2501
+ <a id="__codelineno-10-29" name="__codelineno-10-29" href="#__codelineno-10-29"></a><span class="nt">target_transform</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">none</span>
2502
+ <a id="__codelineno-10-30" name="__codelineno-10-30" href="#__codelineno-10-30"></a><span class="nt">drop_non_positive_targets</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
2503
+ <a id="__codelineno-10-31" name="__codelineno-10-31" href="#__codelineno-10-31"></a><span class="c1"># log_targets: false # deprecated alias for target_transform: log</span>
2504
+ </code></pre></div>
2505
+ <p>Set <code>task</code> explicitly when possible. With an explicit task and no <code>model_names</code>, the factory runs
2506
+ all compatible registry models. If both values are omitted, the factory attempts every registered
2507
+ model and each subrun infers its own task, so incompatible model/task combinations can be included.</p>
2508
+ <h3 id="model-factory-configuration">Model-factory configuration<a class="headerlink" href="#model-factory-configuration" title="Permanent link">&para;</a></h3>
2509
+ <p>These are all options defined by <code>ModelFactoryConfig</code>. Shared options inherited from the core,
2510
+ including <code>backend</code>, <code>run_directory</code>, <code>registry_path</code>, <code>job_name</code>, result export, and Slurm
2511
+ settings, are described in <a href="../../core/configuration/">Configuration</a>.</p>
2512
+ <table>
2513
+ <thead>
2514
+ <tr>
2515
+ <th>Option</th>
2516
+ <th>Type and default</th>
2517
+ <th>Description</th>
2518
+ </tr>
2519
+ </thead>
2520
+ <tbody>
2521
+ <tr>
2522
+ <td><code>train_path</code></td>
2523
+ <td>path, required</td>
2524
+ <td>Training CSV containing the target and every configured training column.</td>
2525
+ </tr>
2526
+ <tr>
2527
+ <td><code>target_column</code></td>
2528
+ <td>string, required</td>
2529
+ <td>Column to predict. Numeric values are required for regression and threshold-binned classification.</td>
2530
+ </tr>
2531
+ <tr>
2532
+ <td><code>task</code></td>
2533
+ <td><code>regression</code>, <code>classification</code>, or <code>null</code>; default <code>null</code></td>
2534
+ <td>Task passed to every model-zoo subrun. If omitted, a subrun infers classification for thresholded or non-numeric targets and regression otherwise. An explicit value also filters automatic model selection.</td>
2535
+ </tr>
2536
+ <tr>
2537
+ <td><code>feature_columns</code></td>
2538
+ <td>list of strings or <code>null</code>; default <code>null</code></td>
2539
+ <td>Numeric features. When omitted, all columns except the target, SMILES column, and ignored columns are selected. They are concatenated with fingerprints when SMILES are also configured.</td>
2540
+ </tr>
2541
+ <tr>
2542
+ <td><code>ignore_columns</code></td>
2543
+ <td>list of strings; default <code>[]</code></td>
2544
+ <td>Excludes columns from automatic feature selection only. It does not alter explicit <code>feature_columns</code>.</td>
2545
+ </tr>
2546
+ <tr>
2547
+ <td><code>test_path</code></td>
2548
+ <td>path or <code>null</code>; default <code>null</code></td>
2549
+ <td>External evaluation CSV. When present, all training rows are fitted; otherwise the training CSV is split into fit and holdout sets.</td>
2550
+ </tr>
2551
+ <tr>
2552
+ <td><code>smiles_column</code></td>
2553
+ <td>string or <code>null</code>; default <code>null</code></td>
2554
+ <td>SMILES column from which RDKit fingerprints are generated. Fingerprints can supplement or replace tabular features.</td>
2555
+ </tr>
2556
+ <tr>
2557
+ <td><code>fingerprint_types</code></td>
2558
+ <td>list of strings; default <code>[morgan, atompair, featmorgan]</code></td>
2559
+ <td>Fingerprints concatenated per molecule. Supported values: <code>morgan</code>, <code>atompair</code>, and <code>featmorgan</code>. Used only when <code>smiles_column</code> is set.</td>
2560
+ </tr>
2561
+ <tr>
2562
+ <td><code>fp_bits</code></td>
2563
+ <td>integer; default <code>2048</code></td>
2564
+ <td>Number of bits per fingerprint type. Total fingerprint width is <code>fp_bits</code> multiplied by the number of types.</td>
2565
+ </tr>
2566
+ <tr>
2567
+ <td><code>fp_radius</code></td>
2568
+ <td>integer; default <code>2</code></td>
2569
+ <td>Radius for Morgan and feature-Morgan fingerprints.</td>
2570
+ </tr>
2571
+ <tr>
2572
+ <td><code>fp_use_chirality</code></td>
2573
+ <td>boolean; default <code>true</code></td>
2574
+ <td>Include chirality in fingerprint generation.</td>
2575
+ </tr>
2576
+ <tr>
2577
+ <td><code>model_names</code></td>
2578
+ <td>list of strings or <code>null</code>; default <code>null</code></td>
2579
+ <td>Registry models to run. Valid values are <code>ridge</code>, <code>lasso</code>, <code>elasticnet</code>, <code>bayesian_ridge</code>, <code>logistic_regression</code>, <code>random_forest</code>, <code>extra_trees</code>, <code>svm</code>, <code>knn</code>, <code>gaussian_process</code>, and <code>xgboost</code>. With an explicit task, <code>null</code> selects every compatible model.</td>
2580
+ </tr>
2581
+ <tr>
2582
+ <td><code>model_params</code></td>
2583
+ <td>mapping; default <code>{}</code></td>
2584
+ <td>Estimator keyword arguments keyed by model name. Each nested mapping is passed directly to the corresponding scikit-learn or XGBoost constructor.</td>
2585
+ </tr>
2586
+ <tr>
2587
+ <td><code>calibrate</code></td>
2588
+ <td>boolean; default <code>false</code></td>
2589
+ <td>For classification, calibrate probabilities with three-fold <code>CalibratedClassifierCV</code>. Ignored for regression.</td>
2590
+ </tr>
2591
+ <tr>
2592
+ <td><code>calibrate_method</code></td>
2593
+ <td><code>sigmoid</code> or <code>isotonic</code>; default <code>sigmoid</code></td>
2594
+ <td>Probability calibration method used when calibration is enabled.</td>
2595
+ </tr>
2596
+ <tr>
2597
+ <td><code>test_size</code></td>
2598
+ <td>float from <code>0.0</code> to <code>0.9</code>; default <code>0.2</code></td>
2599
+ <td>Holdout fraction when <code>test_path</code> is absent; use a positive value when a holdout is required. Splitting is chronological with <code>time_column</code>; otherwise it is random and classification is stratified when possible.</td>
2600
+ </tr>
2601
+ <tr>
2602
+ <td><code>random_state</code></td>
2603
+ <td>integer; default <code>123</code></td>
2604
+ <td>Seed for the random holdout split. Estimator seeds must be set separately in <code>model_params</code>.</td>
2605
+ </tr>
2606
+ <tr>
2607
+ <td><code>predictions_filename</code></td>
2608
+ <td>string; default <code>predictions.csv</code></td>
2609
+ <td>Predictions filename in each model subrun's <code>results/</code> directory.</td>
2610
+ </tr>
2611
+ <tr>
2612
+ <td><code>results_filename</code></td>
2613
+ <td>string; default <code>results.json</code></td>
2614
+ <td>Model-zoo summary filename in each model subrun's <code>results/</code> directory.</td>
2615
+ </tr>
2616
+ <tr>
2617
+ <td><code>metrics_filename</code></td>
2618
+ <td>string; default <code>metrics.json</code></td>
2619
+ <td>Metrics filename in each model subrun's <code>results/</code> directory.</td>
2620
+ </tr>
2621
+ <tr>
2622
+ <td><code>id_column</code></td>
2623
+ <td>string or <code>null</code>; default <code>null</code></td>
2624
+ <td>Column copied to per-model predictions as <code>id</code>; row indices are used when omitted.</td>
2625
+ </tr>
2626
+ <tr>
2627
+ <td><code>classification_thresholds</code></td>
2628
+ <td>list of floats or <code>null</code>; default <code>null</code></td>
2629
+ <td>Sorted boundaries used with classification to bin a continuous target using <code>numpy.digitize</code>. N thresholds produce N+1 integer classes. Factory confusion summaries require a binary outcome.</td>
2630
+ </tr>
2631
+ <tr>
2632
+ <td><code>time_column</code></td>
2633
+ <td>string or <code>null</code>; default <code>null</code></td>
2634
+ <td>Datetime-like column for chronological splitting when no external test CSV is supplied. The newest holdout fraction is evaluated.</td>
2635
+ </tr>
2636
+ <tr>
2637
+ <td><code>standardize_targets</code></td>
2638
+ <td>boolean; default <code>false</code></td>
2639
+ <td>Regression only. Standardizes the target after any transform, then reverses standardization and transformation for predictions and metrics.</td>
2640
+ </tr>
2641
+ <tr>
2642
+ <td><code>positive_class</code></td>
2643
+ <td>integer or <code>null</code>; default <code>null</code></td>
2644
+ <td>Positive label for binary probability and confusion diagnostics. Subruns prefer class <code>1</code>, then the highest class, when omitted; factory confusion summaries default to <code>1</code>.</td>
2645
+ </tr>
2646
+ <tr>
2647
+ <td><code>log_targets</code></td>
2648
+ <td>boolean; default <code>false</code></td>
2649
+ <td>Deprecated alias for <code>target_transform: log</code>. It cannot be combined with a non-<code>none</code> target transform.</td>
2650
+ </tr>
2651
+ <tr>
2652
+ <td><code>target_transform</code></td>
2653
+ <td><code>none</code>, <code>log</code>, or <code>log1p</code>; default <code>none</code></td>
2654
+ <td>Regression-only transform applied before optional standardization and inverted for outputs. <code>log</code> requires targets greater than zero; <code>log1p</code> requires targets greater than -1.</td>
2655
+ </tr>
2656
+ <tr>
2657
+ <td><code>drop_non_positive_targets</code></td>
2658
+ <td>boolean; default <code>true</code></td>
2659
+ <td>Drops targets invalid for the selected log transform. If false, invalid targets cause the run to fail.</td>
2660
+ </tr>
2661
+ </tbody>
2662
+ </table>
2663
+ <p>Model compatibility:</p>
2664
+ <table>
2665
+ <thead>
2666
+ <tr>
2667
+ <th>Task</th>
2668
+ <th>Models</th>
2669
+ </tr>
2670
+ </thead>
2671
+ <tbody>
2672
+ <tr>
2673
+ <td>Regression only</td>
2674
+ <td><code>ridge</code>, <code>lasso</code>, <code>elasticnet</code>, <code>bayesian_ridge</code>, <code>gaussian_process</code></td>
2675
+ </tr>
2676
+ <tr>
2677
+ <td>Classification only</td>
2678
+ <td><code>logistic_regression</code></td>
2679
+ </tr>
2680
+ <tr>
2681
+ <td>Regression and classification</td>
2682
+ <td><code>random_forest</code>, <code>extra_trees</code>, <code>svm</code>, <code>knn</code>, <code>xgboost</code></td>
2683
+ </tr>
2684
+ </tbody>
2685
+ </table>
2686
+ <p>Python:</p>
2687
+ <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>
2688
+ <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>
2689
+ <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>
2690
+ <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">"ml"</span><span class="p">,</span> <span class="s2">"model-factory"</span><span class="p">)</span>
2691
+ <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>
2692
+ <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a> <span class="n">train_path</span><span class="o">=</span><span class="s2">"data/train.csv"</span><span class="p">,</span>
2693
+ <a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a> <span class="n">target_column</span><span class="o">=</span><span class="s2">"y"</span><span class="p">,</span>
2694
+ <a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a> <span class="n">task</span><span class="o">=</span><span class="s2">"regression"</span><span class="p">,</span>
2695
+ <a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">,</span>
2696
+ <a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="p">)</span>
2697
+ <a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></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>
2698
+ <a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2699
+ <a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></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>
2700
+ <a id="__codelineno-11-14" name="__codelineno-11-14" href="#__codelineno-11-14"></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>
2701
+ <a id="__codelineno-11-15" name="__codelineno-11-15" href="#__codelineno-11-15"></a><span class="p">)</span>
2702
+ <a id="__codelineno-11-16" name="__codelineno-11-16" href="#__codelineno-11-16"></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>
2703
+ <a id="__codelineno-11-17" name="__codelineno-11-17" href="#__codelineno-11-17"></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>
2704
+ <a id="__codelineno-11-18" name="__codelineno-11-18" href="#__codelineno-11-18"></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>
2705
+ </code></pre></div>
2706
+ <p>Outputs to inspect:</p>
2707
+ <ul>
2708
+ <li><code>results/summary.csv</code> and <code>results/summary.json</code>: one row per model with prefixed metrics,
2709
+ optional uncertainty-to-error correlation, and binary confusion values. Regression summaries
2710
+ also include OLS slope, intercept, R2, and RMSE diagnostics.</li>
2711
+ <li><code>&lt;model-name&gt;/</code>: complete model-zoo subruns with predictions, metrics, results, logs, and model
2712
+ bundles.</li>
2713
+ <li><code>artifacts/&lt;model-name&gt;_model.joblib</code>: pooled copies of generated model bundles.</li>
2714
+ <li><code>results/result_record.json</code>: canonical result exposing <code>summary_csv</code>, <code>summary_json</code>, and <code>log</code>
2715
+ paths.</li>
2716
+ </ul>
2717
+ <h2 id="explore-classifier"><code>explore-classifier</code><a class="headerlink" href="#explore-classifier" title="Permanent link">&para;</a></h2>
2718
+ <p>Launches an interactive Streamlit UI for classifier threshold exploration.</p>
2719
+ <p>CLI:</p>
2720
+ <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>ml<span class="w"> </span>explore-classifier<span class="w"> </span>--config<span class="w"> </span>explore_classifier.yaml
2721
+ </code></pre></div>
2722
+ <p>YAML:</p>
2723
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="nt">job_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">existing_model_job_id</span>
2724
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="nt">run_base</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">runs</span>
2725
+ <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="nt">model_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">random_forest</span>
2726
+ <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="nt">positive_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
2727
+ </code></pre></div>
2728
+ <p>Python:</p>
2729
+ <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>
2730
+ <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>
2731
+ <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>
2732
+ <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">"ml"</span><span class="p">,</span> <span class="s2">"explore-classifier"</span><span class="p">)</span>
2733
+ <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>
2734
+ <a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a> <span class="n">job_id</span><span class="o">=</span><span class="s2">"existing_model_job_id"</span><span class="p">,</span>
2735
+ <a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> <span class="n">run_base</span><span class="o">=</span><span class="s2">"runs"</span><span class="p">,</span>
2736
+ <a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a> <span class="n">model_name</span><span class="o">=</span><span class="s2">"random_forest"</span><span class="p">,</span>
2737
+ <a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> <span class="n">backend</span><span class="o">=</span><span class="s2">"local"</span><span class="p">,</span>
2738
+ <a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a><span class="p">)</span>
2739
+ <a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></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>
2740
+ <a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a><span class="n">job</span> <span class="o">=</span> <span class="n">submit_workflow</span><span class="p">(</span>
2741
+ <a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></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>
2742
+ <a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></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>
2743
+ <a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a><span class="p">)</span>
2744
+ <a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></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>
2745
+ <a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></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>
2746
+ <a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a> <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
2747
+ </code></pre></div>
2748
+ <p>Outputs to inspect: Streamlit UI session, saved threshold JSON under <code>artifacts/</code>, updated model
2749
+ artifact when possible.</p>
2750
+ <h2 id="compressed-inputs">Compressed inputs<a class="headerlink" href="#compressed-inputs" title="Permanent link">&para;</a></h2>
2751
+ <p>Training, test, and PCA CSV inputs may be supplied as <code>.csv.gz</code>. They are expanded only at runtime,
2752
+ and saved configurations retain the compressed source paths.</p>
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+ </article>
2767
+ </div>
2768
+
2769
+
2770
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2771
+ </div>
2772
+
2773
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
2774
+
2775
+ <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>
2776
+ Back to top
2777
+ </button>
2778
+
2779
+ </main>
2780
+
2781
+ <footer class="md-footer">
2782
+
2783
+ <div class="md-footer-meta md-typeset">
2784
+ <div class="md-footer-meta__inner md-grid">
2785
+ <div class="md-copyright">
2786
+
2787
+
2788
+ Made with
2789
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2790
+ Material for MkDocs
2791
+ </a>
2792
+
2793
+ </div>
2794
+
2795
+ </div>
2796
+ </div>
2797
+ </footer>
2798
+
2799
+ </div>
2800
+ <div class="md-dialog" data-md-component="dialog">
2801
+ <div class="md-dialog__inner md-typeset"></div>
2802
+ </div>
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+ <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>
2809
+
2810
+
2811
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
2812
+
2813
+
2814
+ </body>
2815
+ </html>