rowan-python 2.1.16__tar.gz → 3.0.1__tar.gz

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 (143) hide show
  1. {rowan_python-2.1.16 → rowan_python-3.0.1}/.gitignore +8 -0
  2. {rowan_python-2.1.16 → rowan_python-3.0.1}/PKG-INFO +3 -3
  3. rowan_python-3.0.1/docs/index.md +455 -0
  4. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/PROTAC_solubility.py +9 -10
  5. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/admet.py +6 -3
  6. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/analogue_docking.py +12 -7
  7. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/aqueous_solubility.py +7 -4
  8. rowan_python-3.0.1/examples/basic_calculation.py +24 -0
  9. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/basic_calculation_from_json.py +8 -4
  10. rowan_python-3.0.1/examples/basic_calculation_with_constraint.py +28 -0
  11. rowan_python-3.0.1/examples/basic_calculation_with_solvent.py +40 -0
  12. rowan_python-3.0.1/examples/batch_docking.py +39 -0
  13. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/bde.py +7 -6
  14. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/boltz_paired_msa.py +6 -6
  15. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/boltz_single_msa.py +6 -6
  16. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/chai_paired_msa.py +6 -6
  17. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/chai_single_msa.py +6 -6
  18. rowan_python-3.0.1/examples/cofolding_screen.py +37 -0
  19. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/colabfold_paired_msa.py +6 -6
  20. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/colabfold_single_msa.py +6 -6
  21. rowan_python-3.0.1/examples/conformer_dependent_redox.py +31 -0
  22. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/conformers.py +8 -6
  23. rowan_python-3.0.1/examples/data/tyk2_ligands.sdf +1593 -0
  24. rowan_python-3.0.1/examples/data/tyk2_structure.pdb +4687 -0
  25. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/dcd_download.py +1 -1
  26. rowan_python-3.0.1/examples/docking_screen.py +55 -0
  27. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/double_ended_ts_search.py +14 -19
  28. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/electronic_properties.py +7 -6
  29. rowan_python-3.0.1/examples/fukui_index.py +19 -0
  30. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/hydrogen_bond_basicity.py +8 -7
  31. rowan_python-3.0.1/examples/interaction_energy_decomposition.py +74 -0
  32. rowan_python-3.0.1/examples/ion_mobility.py +17 -0
  33. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/irc.py +9 -10
  34. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/macropka.py +6 -3
  35. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/membrane_permeability.py +8 -5
  36. rowan_python-3.0.1/examples/multistage_optimization.py +37 -0
  37. rowan_python-3.0.1/examples/nmr.py +17 -0
  38. rowan_python-3.0.1/examples/optimization.py +37 -0
  39. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/pdb_download.py +1 -1
  40. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/phenol_pka.py +8 -12
  41. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/pka.py +11 -8
  42. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/pose_analysis_md.py +12 -5
  43. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/protein_binder_design.py +6 -3
  44. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/protein_cofolding.py +6 -3
  45. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/protein_md.py +6 -5
  46. rowan_python-3.0.1/examples/rbfe_graph.py +30 -0
  47. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/redox_potential.py +8 -7
  48. rowan_python-3.0.1/examples/relative_binding_free_energy_perturbation.py +63 -0
  49. rowan_python-3.0.1/examples/retrieve_workflow.py +32 -0
  50. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/scan.py +7 -6
  51. rowan_python-3.0.1/examples/solvent_dependent_conformers.py +37 -0
  52. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/spin_states.py +8 -6
  53. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/strain.py +7 -6
  54. rowan_python-3.0.1/examples/tautomer.py +17 -0
  55. rowan_python-3.0.1/examples/template.py +16 -0
  56. rowan_python-3.0.1/examples/webhook.py +26 -0
  57. {rowan_python-2.1.16 → rowan_python-3.0.1}/pixi.lock +347 -379
  58. {rowan_python-2.1.16 → rowan_python-3.0.1}/pyproject.toml +5 -9
  59. rowan_python-3.0.1/rowan/__init__.py +32 -0
  60. rowan_python-3.0.1/rowan/calculation.py +112 -0
  61. rowan_python-3.0.1/rowan/config.py +680 -0
  62. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/folder.py +57 -16
  63. rowan_python-3.0.1/rowan/molecule.py +268 -0
  64. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/project.py +36 -9
  65. rowan_python-3.0.1/rowan/protein.py +374 -0
  66. rowan_python-3.0.1/rowan/rowan_rdkit/__init__.py +14 -0
  67. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/rowan_rdkit/chem_utils.py +68 -61
  68. rowan_python-3.0.1/rowan/types.py +15 -0
  69. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/user.py +66 -1
  70. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/utils.py +14 -3
  71. rowan_python-3.0.1/rowan/workflows/__init__.py +123 -0
  72. rowan_python-3.0.1/rowan/workflows/admet.py +72 -0
  73. rowan_python-3.0.1/rowan/workflows/analogue_docking.py +223 -0
  74. rowan_python-3.0.1/rowan/workflows/base.py +779 -0
  75. rowan_python-3.0.1/rowan/workflows/basic_calculation.py +263 -0
  76. rowan_python-3.0.1/rowan/workflows/batch_docking.py +96 -0
  77. rowan_python-3.0.1/rowan/workflows/bde.py +172 -0
  78. rowan_python-3.0.1/rowan/workflows/conformer_search.py +202 -0
  79. rowan_python-3.0.1/rowan/workflows/constants.py +19 -0
  80. rowan_python-3.0.1/rowan/workflows/descriptors.py +69 -0
  81. rowan_python-3.0.1/rowan/workflows/docking.py +207 -0
  82. rowan_python-3.0.1/rowan/workflows/double_ended_ts_search.py +202 -0
  83. rowan_python-3.0.1/rowan/workflows/electronic_properties.py +191 -0
  84. rowan_python-3.0.1/rowan/workflows/fukui.py +122 -0
  85. rowan_python-3.0.1/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +140 -0
  86. rowan_python-3.0.1/rowan/workflows/interaction_energy_decomposition.py +152 -0
  87. rowan_python-3.0.1/rowan/workflows/ion_mobility.py +99 -0
  88. rowan_python-3.0.1/rowan/workflows/irc.py +203 -0
  89. rowan_python-3.0.1/rowan/workflows/macropka.py +165 -0
  90. rowan_python-3.0.1/rowan/workflows/membrane_permeability.py +130 -0
  91. rowan_python-3.0.1/rowan/workflows/msa.py +135 -0
  92. rowan_python-3.0.1/rowan/workflows/multistage_optimization.py +175 -0
  93. rowan_python-3.0.1/rowan/workflows/nmr.py +154 -0
  94. rowan_python-3.0.1/rowan/workflows/pka.py +203 -0
  95. rowan_python-3.0.1/rowan/workflows/pose_analysis_md.py +244 -0
  96. rowan_python-3.0.1/rowan/workflows/protein_binder_design.py +204 -0
  97. rowan_python-3.0.1/rowan/workflows/protein_cofolding.py +325 -0
  98. rowan_python-3.0.1/rowan/workflows/protein_md.py +182 -0
  99. rowan_python-3.0.1/rowan/workflows/rbfe_graph.py +152 -0
  100. rowan_python-3.0.1/rowan/workflows/redox_potential.py +143 -0
  101. rowan_python-3.0.1/rowan/workflows/relative_binding_free_energy_perturbation.py +322 -0
  102. rowan_python-3.0.1/rowan/workflows/scan.py +159 -0
  103. rowan_python-3.0.1/rowan/workflows/solubility.py +231 -0
  104. rowan_python-3.0.1/rowan/workflows/solvent_dependent_conformers.py +178 -0
  105. rowan_python-3.0.1/rowan/workflows/spin_states.py +193 -0
  106. rowan_python-3.0.1/rowan/workflows/strain.py +165 -0
  107. rowan_python-3.0.1/rowan/workflows/tautomer_search.py +151 -0
  108. rowan_python-2.1.16/docs/index.md +0 -59
  109. rowan_python-2.1.16/examples/basic_calculation.py +0 -19
  110. rowan_python-2.1.16/examples/basic_calculation_with_constraint.py +0 -32
  111. rowan_python-2.1.16/examples/basic_calculation_with_solvent.py +0 -49
  112. rowan_python-2.1.16/examples/batch_docking.py +0 -130
  113. rowan_python-2.1.16/examples/cofolding_screen.py +0 -134
  114. rowan_python-2.1.16/examples/conformer_dependent_redox.py +0 -38
  115. rowan_python-2.1.16/examples/docking_screen.py +0 -162
  116. rowan_python-2.1.16/examples/fukui_index.py +0 -18
  117. rowan_python-2.1.16/examples/ion_mobility.py +0 -17
  118. rowan_python-2.1.16/examples/multistage_optimization.py +0 -28
  119. rowan_python-2.1.16/examples/nmr.py +0 -17
  120. rowan_python-2.1.16/examples/optimization.py +0 -24
  121. rowan_python-2.1.16/examples/tautomer.py +0 -16
  122. rowan_python-2.1.16/examples/template.py +0 -14
  123. rowan_python-2.1.16/rowan/__init__.py +0 -9
  124. rowan_python-2.1.16/rowan/protein.py +0 -245
  125. rowan_python-2.1.16/rowan/rowan_rdkit/__init__.py +0 -29
  126. rowan_python-2.1.16/rowan/workflow.py +0 -2230
  127. rowan_python-2.1.16/tests/test_macropka_loop.py +0 -69
  128. {rowan_python-2.1.16 → rowan_python-3.0.1}/.envrc +0 -0
  129. {rowan_python-2.1.16 → rowan_python-3.0.1}/.github/workflows/build-and-deploy-docs.yml +0 -0
  130. {rowan_python-2.1.16 → rowan_python-3.0.1}/.github/workflows/python-publish.yml +0 -0
  131. {rowan_python-2.1.16 → rowan_python-3.0.1}/.github/workflows/test.yml +0 -0
  132. {rowan_python-2.1.16 → rowan_python-3.0.1}/.pre-commit-config.yaml +0 -0
  133. {rowan_python-2.1.16 → rowan_python-3.0.1}/LICENSE +0 -0
  134. {rowan_python-2.1.16 → rowan_python-3.0.1}/README.md +0 -0
  135. {rowan_python-2.1.16 → rowan_python-3.0.1}/docs/images/deciduous-tree-favicon.png +0 -0
  136. {rowan_python-2.1.16 → rowan_python-3.0.1}/docs/rowan_rdkit.md +0 -0
  137. {rowan_python-2.1.16 → rowan_python-3.0.1}/docs/stylesheets/colors.css +0 -0
  138. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/data/1iep_receptorH.pdb +0 -0
  139. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/data/citalopram_1iep.xyz +0 -0
  140. {rowan_python-2.1.16 → rowan_python-3.0.1}/examples/data/workflow_example.json +0 -0
  141. {rowan_python-2.1.16 → rowan_python-3.0.1}/mkdocs.yml +0 -0
  142. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/constants.py +0 -0
  143. {rowan_python-2.1.16 → rowan_python-3.0.1}/rowan/py.typed +0 -0
@@ -198,3 +198,11 @@ local/
198
198
  .pixi/
199
199
 
200
200
  cyp/
201
+
202
+ # AI agent instructions (not part of the project source)
203
+ AGENTS.md
204
+
205
+ # MSA download output directories
206
+ msa_directory/
207
+
208
+ notes.md
@@ -1,17 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 2.1.16
3
+ Version: 3.0.1
4
4
  Summary: Rowan Python Library
5
5
  Project-URL: Homepage, https://github.com/rowansci/rowan-client
6
6
  Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
7
7
  Author-email: Corin Wagen <corin@rowansci.com>
8
8
  License-File: LICENSE
9
- Requires-Python: >=3.11
9
+ Requires-Python: >=3.12
10
10
  Requires-Dist: httpx
11
11
  Requires-Dist: nest-asyncio
12
12
  Requires-Dist: rdkit
13
13
  Requires-Dist: setuptools
14
- Requires-Dist: stjames>=0.0.155
14
+ Requires-Dist: stjames>=0.0.174
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -0,0 +1,455 @@
1
+ ## Workflow Utilities
2
+ ::: rowan.workflows.base
3
+ handler: python
4
+ options:
5
+ show_source: false
6
+ show_root_heading: false
7
+ show_root_toc_entry: false
8
+ members_order: source
9
+ group_by_category: true
10
+ filters: ["!^__"]
11
+ members:
12
+ - Workflow
13
+ - WorkflowResult
14
+ - WorkflowError
15
+ - Message
16
+ - Solvent
17
+ - Mode
18
+ - submit_workflow
19
+ - retrieve_workflow
20
+ - retrieve_workflows
21
+ - list_workflows
22
+ - batch_submit_workflow
23
+ - batch_poll_status
24
+
25
+ ## ADMET
26
+ ::: rowan.workflows.admet
27
+ handler: python
28
+ options:
29
+ show_source: false
30
+ show_root_heading: false
31
+ show_root_toc_entry: false
32
+ members_order: source
33
+ group_by_category: true
34
+ filters: ["!^__"]
35
+
36
+ ## Analogue Docking
37
+ ::: rowan.workflows.analogue_docking
38
+ handler: python
39
+ options:
40
+ show_source: false
41
+ show_root_heading: false
42
+ show_root_toc_entry: false
43
+ members_order: source
44
+ group_by_category: true
45
+ filters: ["!^__"]
46
+
47
+ ## Basic Calculation
48
+ ::: rowan.workflows.basic_calculation
49
+ handler: python
50
+ options:
51
+ show_source: false
52
+ show_root_heading: false
53
+ show_root_toc_entry: false
54
+ members_order: source
55
+ group_by_category: true
56
+ filters: ["!^__"]
57
+
58
+ ## Batch Docking
59
+ ::: rowan.workflows.batch_docking
60
+ handler: python
61
+ options:
62
+ show_source: false
63
+ show_root_heading: false
64
+ show_root_toc_entry: false
65
+ members_order: source
66
+ group_by_category: true
67
+ filters: ["!^__"]
68
+
69
+ ## Bond Dissociation Energy
70
+ ::: rowan.workflows.bde
71
+ handler: python
72
+ options:
73
+ show_source: false
74
+ show_root_heading: false
75
+ show_root_toc_entry: false
76
+ members_order: source
77
+ group_by_category: true
78
+ filters: ["!^__"]
79
+
80
+ ## Conformer Search
81
+ ::: rowan.workflows.conformer_search
82
+ handler: python
83
+ options:
84
+ show_source: false
85
+ show_root_heading: false
86
+ show_root_toc_entry: false
87
+ members_order: source
88
+ group_by_category: true
89
+ filters: ["!^__"]
90
+
91
+ ## Descriptors
92
+ ::: rowan.workflows.descriptors
93
+ handler: python
94
+ options:
95
+ show_source: false
96
+ show_root_heading: false
97
+ show_root_toc_entry: false
98
+ members_order: source
99
+ group_by_category: true
100
+ filters: ["!^__"]
101
+
102
+ ## Docking
103
+ ::: rowan.workflows.docking
104
+ handler: python
105
+ options:
106
+ show_source: false
107
+ show_root_heading: false
108
+ show_root_toc_entry: false
109
+ members_order: source
110
+ group_by_category: true
111
+ filters: ["!^__"]
112
+
113
+ ## Double-Ended TS Search
114
+ ::: rowan.workflows.double_ended_ts_search
115
+ handler: python
116
+ options:
117
+ show_source: false
118
+ show_root_heading: false
119
+ show_root_toc_entry: false
120
+ members_order: source
121
+ group_by_category: true
122
+ filters: ["!^__"]
123
+
124
+ ## Electronic Properties
125
+ ::: rowan.workflows.electronic_properties
126
+ handler: python
127
+ options:
128
+ show_source: false
129
+ show_root_heading: false
130
+ show_root_toc_entry: false
131
+ members_order: source
132
+ group_by_category: true
133
+ filters: ["!^__"]
134
+
135
+ ## Fukui
136
+ ::: rowan.workflows.fukui
137
+ handler: python
138
+ options:
139
+ show_source: false
140
+ show_root_heading: false
141
+ show_root_toc_entry: false
142
+ members_order: source
143
+ group_by_category: true
144
+ filters: ["!^__"]
145
+
146
+ ## Hydrogen Bond Donor/Acceptor Strength
147
+ ::: rowan.workflows.hydrogen_bond_donor_acceptor_strength
148
+ handler: python
149
+ options:
150
+ show_source: false
151
+ show_root_heading: false
152
+ show_root_toc_entry: false
153
+ members_order: source
154
+ group_by_category: true
155
+ filters: ["!^__"]
156
+
157
+ ## Interaction Energy Decomposition
158
+ ::: rowan.workflows.interaction_energy_decomposition
159
+ handler: python
160
+ options:
161
+ show_source: false
162
+ show_root_heading: false
163
+ show_root_toc_entry: false
164
+ members_order: source
165
+ group_by_category: true
166
+ filters: ["!^__"]
167
+
168
+ ## Ion Mobility
169
+ ::: rowan.workflows.ion_mobility
170
+ handler: python
171
+ options:
172
+ show_source: false
173
+ show_root_heading: false
174
+ show_root_toc_entry: false
175
+ members_order: source
176
+ group_by_category: true
177
+ filters: ["!^__"]
178
+
179
+ ## IRC
180
+ ::: rowan.workflows.irc
181
+ handler: python
182
+ options:
183
+ show_source: false
184
+ show_root_heading: false
185
+ show_root_toc_entry: false
186
+ members_order: source
187
+ group_by_category: true
188
+ filters: ["!^__"]
189
+
190
+ ## MacropKa
191
+ ::: rowan.workflows.macropka
192
+ handler: python
193
+ options:
194
+ show_source: false
195
+ show_root_heading: false
196
+ show_root_toc_entry: false
197
+ members_order: source
198
+ group_by_category: true
199
+ filters: ["!^__"]
200
+
201
+ ## Membrane Permeability
202
+ ::: rowan.workflows.membrane_permeability
203
+ handler: python
204
+ options:
205
+ show_source: false
206
+ show_root_heading: false
207
+ show_root_toc_entry: false
208
+ members_order: source
209
+ group_by_category: true
210
+ filters: ["!^__"]
211
+
212
+ ## MSA
213
+ ::: rowan.workflows.msa
214
+ handler: python
215
+ options:
216
+ show_source: false
217
+ show_root_heading: false
218
+ show_root_toc_entry: false
219
+ members_order: source
220
+ group_by_category: true
221
+ filters: ["!^__"]
222
+
223
+ ## Multistage Optimization
224
+ ::: rowan.workflows.multistage_optimization
225
+ handler: python
226
+ options:
227
+ show_source: false
228
+ show_root_heading: false
229
+ show_root_toc_entry: false
230
+ members_order: source
231
+ group_by_category: true
232
+ filters: ["!^__"]
233
+
234
+ ## NMR
235
+ ::: rowan.workflows.nmr
236
+ handler: python
237
+ options:
238
+ show_source: false
239
+ show_root_heading: false
240
+ show_root_toc_entry: false
241
+ members_order: source
242
+ group_by_category: true
243
+ filters: ["!^__"]
244
+
245
+ ## pKa
246
+ ::: rowan.workflows.pka
247
+ handler: python
248
+ options:
249
+ show_source: false
250
+ show_root_heading: false
251
+ show_root_toc_entry: false
252
+ members_order: source
253
+ group_by_category: true
254
+ filters: ["!^__"]
255
+
256
+ ## Pose Analysis MD
257
+ ::: rowan.workflows.pose_analysis_md
258
+ handler: python
259
+ options:
260
+ show_source: false
261
+ show_root_heading: false
262
+ show_root_toc_entry: false
263
+ members_order: source
264
+ group_by_category: true
265
+ filters: ["!^__"]
266
+
267
+ ## Protein Binder Design
268
+ ::: rowan.workflows.protein_binder_design
269
+ handler: python
270
+ options:
271
+ show_source: false
272
+ show_root_heading: false
273
+ show_root_toc_entry: false
274
+ members_order: source
275
+ group_by_category: true
276
+ filters: ["!^__"]
277
+
278
+ ## Protein Cofolding
279
+ ::: rowan.workflows.protein_cofolding
280
+ handler: python
281
+ options:
282
+ show_source: false
283
+ show_root_heading: false
284
+ show_root_toc_entry: false
285
+ members_order: source
286
+ group_by_category: true
287
+ filters: ["!^__"]
288
+
289
+ ## Protein MD
290
+ ::: rowan.workflows.protein_md
291
+ handler: python
292
+ options:
293
+ show_source: false
294
+ show_root_heading: false
295
+ show_root_toc_entry: false
296
+ members_order: source
297
+ group_by_category: true
298
+ filters: ["!^__"]
299
+
300
+ ## RBFE Graph
301
+ ::: rowan.workflows.rbfe_graph
302
+ handler: python
303
+ options:
304
+ show_source: false
305
+ show_root_heading: false
306
+ show_root_toc_entry: false
307
+ members_order: source
308
+ group_by_category: true
309
+ filters: ["!^__"]
310
+
311
+ ## Relative Binding Free Energy Perturbation
312
+ ::: rowan.workflows.relative_binding_free_energy_perturbation
313
+ handler: python
314
+ options:
315
+ show_source: false
316
+ show_root_heading: false
317
+ show_root_toc_entry: false
318
+ members_order: source
319
+ group_by_category: true
320
+ filters: ["!^__"]
321
+
322
+ ## Redox Potential
323
+ ::: rowan.workflows.redox_potential
324
+ handler: python
325
+ options:
326
+ show_source: false
327
+ show_root_heading: false
328
+ show_root_toc_entry: false
329
+ members_order: source
330
+ group_by_category: true
331
+ filters: ["!^__"]
332
+
333
+ ## Scan
334
+ ::: rowan.workflows.scan
335
+ handler: python
336
+ options:
337
+ show_source: false
338
+ show_root_heading: false
339
+ show_root_toc_entry: false
340
+ members_order: source
341
+ group_by_category: true
342
+ filters: ["!^__"]
343
+
344
+ ## Solubility
345
+ ::: rowan.workflows.solubility
346
+ handler: python
347
+ options:
348
+ show_source: false
349
+ show_root_heading: false
350
+ show_root_toc_entry: false
351
+ members_order: source
352
+ group_by_category: true
353
+ filters: ["!^__"]
354
+
355
+ ## Solvent-Dependent Conformers
356
+ ::: rowan.workflows.solvent_dependent_conformers
357
+ handler: python
358
+ options:
359
+ show_source: false
360
+ show_root_heading: false
361
+ show_root_toc_entry: false
362
+ members_order: source
363
+ group_by_category: true
364
+ filters: ["!^__"]
365
+
366
+ ## Spin States
367
+ ::: rowan.workflows.spin_states
368
+ handler: python
369
+ options:
370
+ show_source: false
371
+ show_root_heading: false
372
+ show_root_toc_entry: false
373
+ members_order: source
374
+ group_by_category: true
375
+ filters: ["!^__"]
376
+
377
+ ## Strain
378
+ ::: rowan.workflows.strain
379
+ handler: python
380
+ options:
381
+ show_source: false
382
+ show_root_heading: false
383
+ show_root_toc_entry: false
384
+ members_order: source
385
+ group_by_category: true
386
+ filters: ["!^__"]
387
+
388
+ ## Tautomer Search
389
+ ::: rowan.workflows.tautomer_search
390
+ handler: python
391
+ options:
392
+ show_source: false
393
+ show_root_heading: false
394
+ show_root_toc_entry: false
395
+ members_order: source
396
+ group_by_category: true
397
+ filters: ["!^__"]
398
+
399
+ ## Folder Class and Functions
400
+ ::: rowan.folder
401
+ handler: python
402
+ options:
403
+ show_source: false
404
+ show_root_heading: false
405
+ show_root_toc_entry: false
406
+ members_order: source
407
+ group_by_category: true
408
+ filters: ["!^__"]
409
+
410
+ ## User Class and Functions
411
+ ::: rowan.user
412
+ handler: python
413
+ options:
414
+ show_source: false
415
+ show_root_heading: false
416
+ show_root_toc_entry: false
417
+ members_order: source
418
+ group_by_category: true
419
+ filters: ["!^__"]
420
+
421
+ ## Protein Class and Functions
422
+ ::: rowan.protein
423
+ handler: python
424
+ options:
425
+ show_source: false
426
+ show_root_heading: false
427
+ show_root_toc_entry: false
428
+ members_order: source
429
+ group_by_category: true
430
+ filters: ["!^__"]
431
+
432
+ ## Project Class and Functions
433
+ ::: rowan.project
434
+ handler: python
435
+ options:
436
+ show_source: false
437
+ show_root_heading: false
438
+ show_root_toc_entry: false
439
+ members_order: source
440
+ group_by_category: true
441
+ filters: ["!^__"]
442
+
443
+ ## Utilities
444
+ ::: rowan.utils
445
+ handler: python
446
+ options:
447
+ show_source: false
448
+ show_root_heading: false
449
+ show_root_toc_entry: false
450
+ members_order: source
451
+ group_by_category: true
452
+ members:
453
+ - get_api_key
454
+ - get_project_uuid
455
+ - smiles_to_stjames
@@ -1,9 +1,12 @@
1
1
  # ruff: noqa: E501
2
2
 
3
+ # WARNING: This example submits many workflows and will consume significant credits.
4
+
3
5
  import rowan
4
6
 
5
- # Set ROWAN_API_KEY environment variable to your API key or set rowan.api_key directly
7
+ # Set your API key or use the ROWAN_API_KEY environment variable
6
8
  # rowan.api_key = "rowan-sk..."
9
+ folder = rowan.get_folder("examples/protac-solubility")
7
10
 
8
11
  PROTACs = {
9
12
  4564: "CC1=C(C2=CC=C(CNC(=O)[C@@H]3C[C@@H](O)CN3C(=O)[C@@H](NC(=O)CCCCCCCCCN3C=C(CCCOC(=O)NCC4=CC=C(C(=O)NC5=CC=CC=C5N)C=C4)N=N3)C(C)(C)C)C=C2)SC=N1",
@@ -28,29 +31,25 @@ PROTACs = {
28
31
  2428: "CC1=C(C2=CC=C(CNC(=O)[C@@H]3C[C@@H](O)CN3C(=O)[C@@H](NC(=O)COCCOCCOCC(=O)NC3=CC=C(C(=O)NC4=CC=CC=C4N)C=C3)C(C)(C)C)C=C2)SC=N1",
29
32
  }
30
33
 
31
- protac_solubility_folder = rowan.create_folder(name="PROTAC Solubility")
32
-
33
34
  workflows = []
34
35
  for id, smiles in PROTACs.items():
35
36
  workflows.append(
36
37
  rowan.submit_solubility_workflow(
37
38
  initial_smiles=smiles,
38
- solubility_method="fastsolv",
39
+ method="fastsolv",
39
40
  solvents=["CS(=O)C"],
40
41
  temperatures=[293.15],
41
- folder_uuid=protac_solubility_folder.uuid,
42
42
  name=f"solubility {id}",
43
+ folder=folder,
43
44
  )
44
45
  )
45
46
 
46
47
 
47
- for workflow in workflows:
48
- workflow.wait_for_result()
49
- workflow.fetch_latest(in_place=True)
48
+ workflow_results = [w.result() for w in workflows]
50
49
 
51
50
  print(
52
51
  [
53
- (workflow.name, workflow.data["solubilities"]["CS(=O)C"]["solubilities"])
54
- for workflow in workflows
52
+ (w.name, r.data["solubilities"]["CS(=O)C"]["solubilities"])
53
+ for w, r in zip(workflows, workflow_results, strict=True)
55
54
  ]
56
55
  )
@@ -1,15 +1,18 @@
1
1
  import rowan
2
2
 
3
- # Set ROWAN_API_KEY environment variable to your API key or set rowan.api_key directly
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
4
  # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
5
6
 
6
7
  oseltamivir_SMILES = "C1CCOC(=O)C1=C[C@@H](OC(CC)CC)[C@H](NC(C)=O)[C@@H]([NH3+])C1CCC1"
7
8
 
8
9
  workflow = rowan.submit_admet_workflow(
9
10
  initial_smiles=oseltamivir_SMILES,
10
11
  name="Oseltamivir ADMET",
12
+ folder=folder,
11
13
  )
12
14
 
13
15
  print(f"View workflow privately at: https://labs.rowansci.com/solubility/{workflow.uuid}")
14
- workflow.wait_for_result().fetch_latest(in_place=True)
15
- print(workflow)
16
+ result = workflow.result()
17
+ print(result)
18
+ # e.g. <ADMETResult properties=42 preview={'mw': 180.16, 'tpsa': 75.3, ...}>
@@ -1,27 +1,32 @@
1
1
  from pathlib import Path
2
2
 
3
- import stjames
4
-
5
3
  import rowan
6
4
 
5
+ # Set your API key or use the ROWAN_API_KEY environment variable
6
+ # rowan.api_key = "rowan-sk..."
7
+
8
+ folder = rowan.get_folder("examples")
9
+
7
10
  citalopram_analogues = [
8
11
  "CN(C)CCC[C@@]1(c2ccccc2)OCc2cc(C#N)ccc21",
9
12
  "CN(C)CCC[C@@]1(c2ccc(F)cc2)OCc2c(CC)c(C#N)ccc21",
10
13
  "CN(C)CCC[C@@]1(c2ccc(CCC)cc2)OCc2cc(C#N)ccc21",
11
14
  ]
12
15
 
13
- bound_pose = stjames.Molecule.from_file("examples/data/citalopram_1iep.xyz")
16
+ data_dir = Path(__file__).parent / "data"
17
+ bound_pose = rowan.Molecule.from_xyz_file(str(data_dir / "citalopram_1iep.xyz"))
14
18
 
15
- protein = rowan.upload_protein("1IEP receptor", Path("examples/data/1iep_receptorH.pdb"))
19
+ protein = rowan.upload_protein("1IEP receptor", data_dir / "1iep_receptorH.pdb")
16
20
 
17
21
  workflow = rowan.submit_analogue_docking_workflow(
18
22
  analogues=citalopram_analogues,
19
23
  protein=protein,
20
24
  initial_molecule=bound_pose,
25
+ folder=folder,
21
26
  )
22
27
 
23
28
  print(f"View MD workflow privately at: https://labs.rowansci.com/analogue-docking/{workflow.uuid}")
24
- workflow.wait_for_result().fetch_latest(in_place=True)
29
+ result = workflow.result()
25
30
 
26
- # print ligand RMSD by frame
27
- print(workflow.data)
31
+ print(result)
32
+ # e.g. <AnalogueDockingResult analogues=3 best=(-8.30, 'CN(C)CCC...')>
@@ -1,18 +1,21 @@
1
1
  import rowan
2
2
 
3
- # Set ROWAN_API_KEY environment variable to your API key or set rowan.api_key directly
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
4
  # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
5
6
 
6
7
  oseltamivir_SMILES = "C1CCOC(=O)C1=C[C@@H](OC(CC)CC)[C@H](NC(C)=O)[C@@H]([NH3+])C1CCC1"
7
8
 
8
9
  workflow = rowan.submit_solubility_workflow(
9
10
  initial_smiles=oseltamivir_SMILES,
10
- solubility_method="kingfisher",
11
+ method="kingfisher",
11
12
  solvents=["O"],
12
13
  temperatures=[298.15],
13
14
  name="Oseltamivir aqueous solubility",
15
+ folder=folder,
14
16
  )
15
17
 
16
18
  print(f"View workflow privately at: https://labs.rowansci.com/workflow/{workflow.uuid}")
17
- workflow.wait_for_result().fetch_latest(in_place=True)
18
- print(workflow) # Solubility in log(mol/L), temperature in kelvin
19
+ result = workflow.result()
20
+ print(result)
21
+ # e.g. <SolubilityResult solvents=['water']>
@@ -0,0 +1,24 @@
1
+ import rowan
2
+
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
+ # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
6
+
7
+ workflow = rowan.submit_basic_calculation_workflow(
8
+ initial_molecule="CC(=C)C=C",
9
+ preset="semiempirical",
10
+ tasks=["optimize"],
11
+ name="Isoprene Optimization",
12
+ folder=folder,
13
+ )
14
+
15
+ print(f"View workflow privately at: https://labs.rowansci.com/calculation/{workflow.uuid}")
16
+
17
+ # Stream optimization steps as they complete; final iteration is the complete result.
18
+ for result in workflow.stream_result(poll_interval=3):
19
+ if result.calculation_uuid:
20
+ mols = rowan.retrieve_calculation_molecules(result.calculation_uuid)
21
+ print(f" {len(mols)} opt steps, energy={mols[-1].get('energy') if mols else None}")
22
+
23
+ print(result)
24
+ # e.g. <BasicCalculationResult energy=-76.234567 H>
@@ -1,11 +1,13 @@
1
1
  import json
2
+ from pathlib import Path
2
3
 
3
4
  import rowan
4
5
 
5
- # Set ROWAN_API_KEY environment variable to your API key or set rowan.api_key directly
6
+ # Set your API key or use the ROWAN_API_KEY environment variable
6
7
  # rowan.api_key = "rowan-sk..."
8
+ folder = rowan.get_folder("examples")
7
9
 
8
- with open("examples/data/workflow_example.json") as f:
10
+ with open(Path(__file__).parent / "data/workflow_example.json") as f:
9
11
  workflow_data = json.load(f)
10
12
 
11
13
  workflow = rowan.submit_workflow(
@@ -13,8 +15,10 @@ workflow = rowan.submit_workflow(
13
15
  workflow_data=workflow_data,
14
16
  name="basic calculation from json",
15
17
  initial_molecule=workflow_data["initial_molecule"],
18
+ folder_uuid=folder,
16
19
  )
17
20
 
18
21
  print(f"View workflow privately at: https://labs.rowansci.com/calculation/{workflow.uuid}")
19
- workflow.wait_for_result().fetch_latest(in_place=True)
20
- print(workflow)
22
+ result = workflow.result()
23
+ print(result)
24
+ # e.g. <BasicCalculationResult energy=-76.234567 H>