rowan-python 2.0.0__tar.gz → 2.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.
- {rowan_python-2.0.0 → rowan_python-2.0.1}/PKG-INFO +1 -1
- rowan_python-2.0.1/examples/basic_calculation_from_json.py +20 -0
- rowan_python-2.0.1/examples/basic_calculation_with_constraint.py +33 -0
- rowan_python-2.0.1/examples/basic_calculation_with_solvent.py +55 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/bde.py +3 -0
- rowan_python-2.0.1/examples/data/workflow_example.json +190 -0
- rowan_python-2.0.1/examples/macropka.py +13 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/pixi.lock +41 -28
- {rowan_python-2.0.0 → rowan_python-2.0.1}/pyproject.toml +1 -1
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/__init__.py +1 -3
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/workflow.py +58 -3
- {rowan_python-2.0.0 → rowan_python-2.0.1}/.envrc +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/.github/workflows/test.yml +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/.gitignore +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/.pre-commit-config.yaml +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/LICENSE +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/README.md +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/docs/index.md +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/docs/rowan_rdkit.md +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/docs/stylesheets/colors.css +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/cofolding_screen.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/conformers.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/docking_screen.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/irc.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/multistage_opt.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/optimization.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/phenol_pka.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/pka.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/protein_cofolding.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/examples/scan.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/mkdocs.yml +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/constants.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/folder.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/protein.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/py.typed +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/rowan_rdkit/__init__.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/rowan_rdkit/chem_utils.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/user.py +0 -0
- {rowan_python-2.0.0 → rowan_python-2.0.1}/rowan/utils.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
import rowan
|
|
4
|
+
|
|
5
|
+
# rowan.api_key = ""
|
|
6
|
+
|
|
7
|
+
with open("examples/data/workflow_example.json", "r") as f:
|
|
8
|
+
workflow_data = json.load(f)
|
|
9
|
+
|
|
10
|
+
result = rowan.submit_workflow(
|
|
11
|
+
workflow_type="basic_calculation",
|
|
12
|
+
workflow_data=workflow_data,
|
|
13
|
+
name="basic calculation from json",
|
|
14
|
+
initial_molecule=workflow_data["initial_molecule"],
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
result.wait_for_result()
|
|
18
|
+
result.fetch_latest(in_place=True)
|
|
19
|
+
|
|
20
|
+
print(result)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from stjames import Molecule
|
|
2
|
+
|
|
3
|
+
import rowan
|
|
4
|
+
|
|
5
|
+
# rowan.api_key = ""
|
|
6
|
+
|
|
7
|
+
result = rowan.submit_workflow(
|
|
8
|
+
initial_molecule=Molecule.from_smiles("CCCC"),
|
|
9
|
+
workflow_type="basic_calculation",
|
|
10
|
+
name="Constrained Butane",
|
|
11
|
+
workflow_data={
|
|
12
|
+
"engine": "xtb",
|
|
13
|
+
"settings": {
|
|
14
|
+
"method": "gfn2_xtb",
|
|
15
|
+
"tasks": ["optimize"],
|
|
16
|
+
"mode": "auto",
|
|
17
|
+
"opt_settings": {
|
|
18
|
+
"constraints": [
|
|
19
|
+
{
|
|
20
|
+
"atoms": [4, 3, 2, 1],
|
|
21
|
+
"constraint_type": "dihedral",
|
|
22
|
+
"value": 0,
|
|
23
|
+
},
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
result.wait_for_result()
|
|
31
|
+
result.fetch_latest(in_place=True)
|
|
32
|
+
|
|
33
|
+
print(result)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# ruff: noqa
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import sys
|
|
5
|
+
|
|
6
|
+
from stjames import Molecule, Method
|
|
7
|
+
|
|
8
|
+
import rowan
|
|
9
|
+
|
|
10
|
+
# rowan.api_key = ""
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def compute_energy_with_solvent_correction(molecule: Molecule, method: Method, name: str) -> float:
|
|
14
|
+
opt = rowan.submit_workflow(
|
|
15
|
+
initial_molecule=molecule,
|
|
16
|
+
workflow_type="basic_calculation",
|
|
17
|
+
name=f"{name} {method} optimization",
|
|
18
|
+
workflow_data={
|
|
19
|
+
"settings": {"method": method, "tasks": ["optimize"]},
|
|
20
|
+
"engine": "omol25",
|
|
21
|
+
},
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
opt.wait_for_result()
|
|
25
|
+
opt.fetch_latest(in_place=True)
|
|
26
|
+
|
|
27
|
+
calculation_uuid = opt.data["calculation_uuid"]
|
|
28
|
+
optimized_molecule = rowan.retrieve_calculation_molecules(calculation_uuid)[-1]
|
|
29
|
+
|
|
30
|
+
sp = rowan.submit_workflow(
|
|
31
|
+
initial_molecule=optimized_molecule,
|
|
32
|
+
workflow_type="basic_calculation",
|
|
33
|
+
name=f"{name} {method} single point",
|
|
34
|
+
workflow_data={
|
|
35
|
+
"settings": {
|
|
36
|
+
"method": method,
|
|
37
|
+
"tasks": ["energy"],
|
|
38
|
+
"solvent_settings": {"solvent": "water", "model": "cpcmx"},
|
|
39
|
+
},
|
|
40
|
+
"engine": "omol25",
|
|
41
|
+
},
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
sp.wait_for_result()
|
|
45
|
+
sp.fetch_latest(in_place=True)
|
|
46
|
+
|
|
47
|
+
calculation_uuid = sp.data["calculation_uuid"]
|
|
48
|
+
final_molecule = rowan.retrieve_calculation_molecules(calculation_uuid)[0]
|
|
49
|
+
return final_molecule["energy"]
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
E1 = compute_energy_with_solvent_correction(
|
|
53
|
+
Molecule.from_smiles("CC(=O)Oc1ccccc1C(=O)O"), Method.OMOL25_CONSERVING_S, "aspirin"
|
|
54
|
+
)
|
|
55
|
+
print(E1)
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mode": "auto",
|
|
3
|
+
"engine": "xtb",
|
|
4
|
+
"messages": [],
|
|
5
|
+
"settings": {
|
|
6
|
+
"mode": "rapid",
|
|
7
|
+
"tasks": [
|
|
8
|
+
"optimize"
|
|
9
|
+
],
|
|
10
|
+
"method": "gfn2_xtb",
|
|
11
|
+
"basis_set": null,
|
|
12
|
+
"corrections": [],
|
|
13
|
+
"opt_settings": {
|
|
14
|
+
"max_steps": 250,
|
|
15
|
+
"constraints": [
|
|
16
|
+
{
|
|
17
|
+
"atoms": [
|
|
18
|
+
4,
|
|
19
|
+
3,
|
|
20
|
+
2,
|
|
21
|
+
1
|
|
22
|
+
],
|
|
23
|
+
"value": 0,
|
|
24
|
+
"constraint_type": "dihedral"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"optimize_cell": false,
|
|
28
|
+
"energy_threshold": 0.00005,
|
|
29
|
+
"transition_state": false,
|
|
30
|
+
"recalc_hess_every": 0,
|
|
31
|
+
"max_gradient_threshold": 0.005,
|
|
32
|
+
"rms_gradient_threshold": 0.0035
|
|
33
|
+
},
|
|
34
|
+
"scf_settings": {
|
|
35
|
+
"soscf": false,
|
|
36
|
+
"max_iters": 250
|
|
37
|
+
},
|
|
38
|
+
"level_of_theory": "gfn2_xtb",
|
|
39
|
+
"compute_settings": {
|
|
40
|
+
"compute_type_used": null,
|
|
41
|
+
"requested_compute_type": "cpu"
|
|
42
|
+
},
|
|
43
|
+
"solvent_settings": null,
|
|
44
|
+
"thermochem_settings": {
|
|
45
|
+
"temperature": 298,
|
|
46
|
+
"concentration": 0.0408740470708,
|
|
47
|
+
"scaling_factor": 1,
|
|
48
|
+
"cutoff_frequency": 100
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"calculation_uuid": "54027970-5efb-42df-8125-c8984d8ca7eb",
|
|
52
|
+
"initial_molecule": {
|
|
53
|
+
"cell": null,
|
|
54
|
+
"atoms": [
|
|
55
|
+
{
|
|
56
|
+
"position": [
|
|
57
|
+
-1.57731622,
|
|
58
|
+
0.46259034,
|
|
59
|
+
0.02288227
|
|
60
|
+
],
|
|
61
|
+
"atomic_number": 6
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"position": [
|
|
65
|
+
-0.55246934,
|
|
66
|
+
-0.31349805,
|
|
67
|
+
-0.78986664
|
|
68
|
+
],
|
|
69
|
+
"atomic_number": 6
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"position": [
|
|
73
|
+
0.65178196,
|
|
74
|
+
-0.77563238,
|
|
75
|
+
0.03104792
|
|
76
|
+
],
|
|
77
|
+
"atomic_number": 6
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"position": [
|
|
81
|
+
1.5013315,
|
|
82
|
+
0.37070813,
|
|
83
|
+
0.55769072
|
|
84
|
+
],
|
|
85
|
+
"atomic_number": 6
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"position": [
|
|
89
|
+
-1.17009891,
|
|
90
|
+
1.41344062,
|
|
91
|
+
0.37886292
|
|
92
|
+
],
|
|
93
|
+
"atomic_number": 1
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"position": [
|
|
97
|
+
-1.91277475,
|
|
98
|
+
-0.11690438,
|
|
99
|
+
0.88874548
|
|
100
|
+
],
|
|
101
|
+
"atomic_number": 1
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"position": [
|
|
105
|
+
-2.45332233,
|
|
106
|
+
0.68757176,
|
|
107
|
+
-0.59399069
|
|
108
|
+
],
|
|
109
|
+
"atomic_number": 1
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"position": [
|
|
113
|
+
-0.21575239,
|
|
114
|
+
0.30052639,
|
|
115
|
+
-1.63326648
|
|
116
|
+
],
|
|
117
|
+
"atomic_number": 1
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"position": [
|
|
121
|
+
-1.04230601,
|
|
122
|
+
-1.19688302,
|
|
123
|
+
-1.21658189
|
|
124
|
+
],
|
|
125
|
+
"atomic_number": 1
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"position": [
|
|
129
|
+
0.31558706,
|
|
130
|
+
-1.39539838,
|
|
131
|
+
0.87044712
|
|
132
|
+
],
|
|
133
|
+
"atomic_number": 1
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"position": [
|
|
137
|
+
1.28031633,
|
|
138
|
+
-1.41330121,
|
|
139
|
+
-0.60197473
|
|
140
|
+
],
|
|
141
|
+
"atomic_number": 1
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"position": [
|
|
145
|
+
2.39258685,
|
|
146
|
+
-0.02154188,
|
|
147
|
+
1.05803044
|
|
148
|
+
],
|
|
149
|
+
"atomic_number": 1
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"position": [
|
|
153
|
+
0.95227634,
|
|
154
|
+
0.97534316,
|
|
155
|
+
1.28543953
|
|
156
|
+
],
|
|
157
|
+
"atomic_number": 1
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"position": [
|
|
161
|
+
1.83015992,
|
|
162
|
+
1.0229789,
|
|
163
|
+
-0.25746596
|
|
164
|
+
],
|
|
165
|
+
"atomic_number": 1
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"charge": 0,
|
|
169
|
+
"dipole": null,
|
|
170
|
+
"energy": null,
|
|
171
|
+
"smiles": "CCCC",
|
|
172
|
+
"stress": null,
|
|
173
|
+
"elapsed": null,
|
|
174
|
+
"gradient": null,
|
|
175
|
+
"velocities": null,
|
|
176
|
+
"multiplicity": 1,
|
|
177
|
+
"homo_lumo_gap": null,
|
|
178
|
+
"scf_completed": null,
|
|
179
|
+
"scf_iterations": null,
|
|
180
|
+
"mulliken_charges": null,
|
|
181
|
+
"calculation_index": null,
|
|
182
|
+
"vibrational_modes": null,
|
|
183
|
+
"zero_point_energy": null,
|
|
184
|
+
"thermal_energy_corr": null,
|
|
185
|
+
"thermal_enthalpy_corr": null,
|
|
186
|
+
"mulliken_spin_densities": null,
|
|
187
|
+
"thermal_free_energy_corr": null
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import rowan
|
|
2
|
+
|
|
3
|
+
# Set ROWAN_API_KEY environment variable to your API key or set rowan.api_key directly
|
|
4
|
+
# rowan.api_key = "rowan-sk..."
|
|
5
|
+
|
|
6
|
+
result = rowan.submit_macropka_workflow(
|
|
7
|
+
# oseltamivir
|
|
8
|
+
initial_smiles="C1CCOC(=O)C1=C[C@@H](OC(CC)CC)[C@H](NC(C)=O)[C@@H]([NH3+])C1CCC1",
|
|
9
|
+
name="Oseltamivir macropka",
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
print(result)
|
|
@@ -20,7 +20,7 @@ environments:
|
|
|
20
20
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_3.conda
|
|
21
21
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
|
|
22
22
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda
|
|
23
|
-
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-
|
|
23
|
+
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-hee844dc_1.conda
|
|
24
24
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_3.conda
|
|
25
25
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_3.conda
|
|
26
26
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
|
|
@@ -58,11 +58,12 @@ environments:
|
|
|
58
58
|
osx-arm64:
|
|
59
59
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda
|
|
60
60
|
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.7.14-hbd8a1cb_0.conda
|
|
61
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda
|
|
61
62
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.1-hec049ff_0.conda
|
|
62
63
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda
|
|
63
64
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda
|
|
64
65
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda
|
|
65
|
-
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-
|
|
66
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-h4237e3c_1.conda
|
|
66
67
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
|
|
67
68
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
|
|
68
69
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.1-h81ee809_0.conda
|
|
@@ -114,7 +115,7 @@ environments:
|
|
|
114
115
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_3.conda
|
|
115
116
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
|
|
116
117
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda
|
|
117
|
-
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-
|
|
118
|
+
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-hee844dc_1.conda
|
|
118
119
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_3.conda
|
|
119
120
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_3.conda
|
|
120
121
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
|
|
@@ -142,7 +143,7 @@ environments:
|
|
|
142
143
|
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
|
|
143
144
|
- pypi: https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl
|
|
144
145
|
- pypi: https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl
|
|
145
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
146
|
+
- pypi: https://files.pythonhosted.org/packages/bf/c4/a839fcc28bebfa72925d9121c4d39398f77f95bcba0cf26c972a0cfb1de7/griffe-1.8.0-py3-none-any.whl
|
|
146
147
|
- pypi: https://files.pythonhosted.org/packages/0b/a0/496e4f4f3af322171913b77f1789f479535abedf9f08359f1918219e03c8/griffe_pydantic-1.1.4-py3-none-any.whl
|
|
147
148
|
- pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl
|
|
148
149
|
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
|
|
@@ -163,7 +164,7 @@ environments:
|
|
|
163
164
|
- pypi: https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl
|
|
164
165
|
- pypi: https://files.pythonhosted.org/packages/1d/30/dda19f0495a9096b64b6b3c07c4bfcff1c76ee0fc521086d53593f18b4c0/mkdocs_material-9.6.15-py3-none-any.whl
|
|
165
166
|
- pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl
|
|
166
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
167
|
+
- pypi: https://files.pythonhosted.org/packages/de/b4/3c5eac68f31e124a55d255d318c7445840fa1be55e013f507556d6481913/mkdocstrings-0.30.0-py3-none-any.whl
|
|
167
168
|
- pypi: https://files.pythonhosted.org/packages/3b/dd/a24ee3de56954bfafb6ede7cd63c2413bb842cc48eb45e41c43a05a33074/mkdocstrings_python-1.16.12-py3-none-any.whl
|
|
168
169
|
- pypi: https://files.pythonhosted.org/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl
|
|
169
170
|
- pypi: https://files.pythonhosted.org/packages/4c/66/85607ab5137d65e4f54d9797b77d5a038ef34f714929cf8ad30b03f628df/mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
@@ -212,11 +213,12 @@ environments:
|
|
|
212
213
|
osx-arm64:
|
|
213
214
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda
|
|
214
215
|
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.7.14-hbd8a1cb_0.conda
|
|
216
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda
|
|
215
217
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.1-hec049ff_0.conda
|
|
216
218
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda
|
|
217
219
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda
|
|
218
220
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda
|
|
219
|
-
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-
|
|
221
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-h4237e3c_1.conda
|
|
220
222
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
|
|
221
223
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
|
|
222
224
|
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.1-h81ee809_0.conda
|
|
@@ -241,7 +243,7 @@ environments:
|
|
|
241
243
|
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
|
|
242
244
|
- pypi: https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl
|
|
243
245
|
- pypi: https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl
|
|
244
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
246
|
+
- pypi: https://files.pythonhosted.org/packages/bf/c4/a839fcc28bebfa72925d9121c4d39398f77f95bcba0cf26c972a0cfb1de7/griffe-1.8.0-py3-none-any.whl
|
|
245
247
|
- pypi: https://files.pythonhosted.org/packages/0b/a0/496e4f4f3af322171913b77f1789f479535abedf9f08359f1918219e03c8/griffe_pydantic-1.1.4-py3-none-any.whl
|
|
246
248
|
- pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl
|
|
247
249
|
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
|
|
@@ -262,7 +264,7 @@ environments:
|
|
|
262
264
|
- pypi: https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl
|
|
263
265
|
- pypi: https://files.pythonhosted.org/packages/1d/30/dda19f0495a9096b64b6b3c07c4bfcff1c76ee0fc521086d53593f18b4c0/mkdocs_material-9.6.15-py3-none-any.whl
|
|
264
266
|
- pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl
|
|
265
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
267
|
+
- pypi: https://files.pythonhosted.org/packages/de/b4/3c5eac68f31e124a55d255d318c7445840fa1be55e013f507556d6481913/mkdocstrings-0.30.0-py3-none-any.whl
|
|
266
268
|
- pypi: https://files.pythonhosted.org/packages/3b/dd/a24ee3de56954bfafb6ede7cd63c2413bb842cc48eb45e41c43a05a33074/mkdocstrings_python-1.16.12-py3-none-any.whl
|
|
267
269
|
- pypi: https://files.pythonhosted.org/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl
|
|
268
270
|
- pypi: https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl
|
|
@@ -522,10 +524,10 @@ packages:
|
|
|
522
524
|
- markdown ; extra == 'dev'
|
|
523
525
|
- flake8 ; extra == 'dev'
|
|
524
526
|
- wheel ; extra == 'dev'
|
|
525
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
527
|
+
- pypi: https://files.pythonhosted.org/packages/bf/c4/a839fcc28bebfa72925d9121c4d39398f77f95bcba0cf26c972a0cfb1de7/griffe-1.8.0-py3-none-any.whl
|
|
526
528
|
name: griffe
|
|
527
|
-
version: 1.
|
|
528
|
-
sha256:
|
|
529
|
+
version: 1.8.0
|
|
530
|
+
sha256: 110faa744b2c5c84dd432f4fa9aa3b14805dd9519777dd55e8db214320593b02
|
|
529
531
|
requires_dist:
|
|
530
532
|
- colorama>=0.4
|
|
531
533
|
requires_python: '>=3.9'
|
|
@@ -583,6 +585,16 @@ packages:
|
|
|
583
585
|
purls: []
|
|
584
586
|
size: 12129203
|
|
585
587
|
timestamp: 1720853576813
|
|
588
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda
|
|
589
|
+
sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620
|
|
590
|
+
md5: 5eb22c1d7b3fc4abb50d92d621583137
|
|
591
|
+
depends:
|
|
592
|
+
- __osx >=11.0
|
|
593
|
+
license: MIT
|
|
594
|
+
license_family: MIT
|
|
595
|
+
purls: []
|
|
596
|
+
size: 11857802
|
|
597
|
+
timestamp: 1720853997952
|
|
586
598
|
- pypi: https://files.pythonhosted.org/packages/7a/cd/18f8da995b658420625f7ef13f037be53ae04ec5ad33f9b718240dcfd48c/identify-2.6.12-py2.py3-none-any.whl
|
|
587
599
|
name: identify
|
|
588
600
|
version: 2.6.12
|
|
@@ -841,28 +853,29 @@ packages:
|
|
|
841
853
|
purls: []
|
|
842
854
|
size: 71829
|
|
843
855
|
timestamp: 1748393749336
|
|
844
|
-
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-
|
|
845
|
-
sha256:
|
|
846
|
-
md5:
|
|
856
|
+
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.3-hee844dc_1.conda
|
|
857
|
+
sha256: 8c4faf560815a6d6b5edadc019f76d22a45171eaa707a1f1d1898ceda74b2e3f
|
|
858
|
+
md5: 18d2ac95b507ada9ca159a6bd73255f7
|
|
847
859
|
depends:
|
|
848
860
|
- __glibc >=2.17,<3.0.a0
|
|
849
861
|
- icu >=75.1,<76.0a0
|
|
850
862
|
- libgcc >=14
|
|
851
863
|
- libzlib >=1.3.1,<2.0a0
|
|
852
|
-
license:
|
|
864
|
+
license: blessing
|
|
853
865
|
purls: []
|
|
854
|
-
size:
|
|
855
|
-
timestamp:
|
|
856
|
-
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-
|
|
857
|
-
sha256:
|
|
858
|
-
md5:
|
|
866
|
+
size: 936339
|
|
867
|
+
timestamp: 1753262589168
|
|
868
|
+
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.3-h4237e3c_1.conda
|
|
869
|
+
sha256: 248ba9622ee91c3ae1266f7b69143adf5031e1f2d94b6d02423e192e47531697
|
|
870
|
+
md5: 6d034f4604ac104a1256204af7d1a534
|
|
859
871
|
depends:
|
|
860
872
|
- __osx >=11.0
|
|
873
|
+
- icu >=75.1,<76.0a0
|
|
861
874
|
- libzlib >=1.3.1,<2.0a0
|
|
862
|
-
license:
|
|
875
|
+
license: blessing
|
|
863
876
|
purls: []
|
|
864
|
-
size:
|
|
865
|
-
timestamp:
|
|
877
|
+
size: 902818
|
|
878
|
+
timestamp: 1753262833682
|
|
866
879
|
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_3.conda
|
|
867
880
|
sha256: 7650837344b7850b62fdba02155da0b159cf472b9ab59eb7b472f7bd01dff241
|
|
868
881
|
md5: 6d11a5edae89fe413c0569f16d308f5a
|
|
@@ -1041,10 +1054,10 @@ packages:
|
|
|
1041
1054
|
version: 1.3.1
|
|
1042
1055
|
sha256: adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31
|
|
1043
1056
|
requires_python: '>=3.8'
|
|
1044
|
-
- pypi: https://files.pythonhosted.org/packages/
|
|
1057
|
+
- pypi: https://files.pythonhosted.org/packages/de/b4/3c5eac68f31e124a55d255d318c7445840fa1be55e013f507556d6481913/mkdocstrings-0.30.0-py3-none-any.whl
|
|
1045
1058
|
name: mkdocstrings
|
|
1046
|
-
version: 0.
|
|
1047
|
-
sha256:
|
|
1059
|
+
version: 0.30.0
|
|
1060
|
+
sha256: ae9e4a0d8c1789697ac776f2e034e2ddd71054ae1cf2c2bb1433ccfd07c226f2
|
|
1048
1061
|
requires_dist:
|
|
1049
1062
|
- jinja2>=2.11.1
|
|
1050
1063
|
- markdown>=3.6
|
|
@@ -1535,8 +1548,8 @@ packages:
|
|
|
1535
1548
|
requires_python: '>=3.8'
|
|
1536
1549
|
- pypi: ./
|
|
1537
1550
|
name: rowan-python
|
|
1538
|
-
version: 2.0.
|
|
1539
|
-
sha256:
|
|
1551
|
+
version: 2.0.1
|
|
1552
|
+
sha256: 538deecdcbfe274e9b6bd98bc1db5ff036d409d503774710ad34fb5aeda726e0
|
|
1540
1553
|
requires_dist:
|
|
1541
1554
|
- httpx
|
|
1542
1555
|
- stjames>=0.0.83
|
|
@@ -68,7 +68,7 @@ class Workflow(BaseModel):
|
|
|
68
68
|
"""
|
|
69
69
|
Loads workflow data from the database and updates the current instance.
|
|
70
70
|
|
|
71
|
-
:param in_place: Whether to update the current instance in-place.
|
|
71
|
+
:param in_place: Whether to update the current instance in-place.
|
|
72
72
|
:return: The updated instance (self).
|
|
73
73
|
:raises HTTPError: If the API request fails.
|
|
74
74
|
"""
|
|
@@ -217,7 +217,7 @@ class Workflow(BaseModel):
|
|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
def submit_workflow(
|
|
220
|
-
workflow_type:
|
|
220
|
+
workflow_type: stjames.WORKFLOW_NAME,
|
|
221
221
|
workflow_data: dict[str, Any] | None = None,
|
|
222
222
|
initial_molecule: dict[str, Any] | StJamesMolecule | RdkitMol | None = None,
|
|
223
223
|
initial_smiles: str | None = None,
|
|
@@ -241,6 +241,11 @@ def submit_workflow(
|
|
|
241
241
|
:raises ValueError: If neither `initial_smiles` nor a valid `initial_molecule` is provided.
|
|
242
242
|
:raises HTTPError: If the API request fails.
|
|
243
243
|
"""
|
|
244
|
+
if workflow_type not in stjames.WORKFLOW_MAPPING:
|
|
245
|
+
raise ValueError(
|
|
246
|
+
"Invalid workflow type. Must be one of:\n " + "\n ".join(stjames.WORKFLOW_MAPPING)
|
|
247
|
+
)
|
|
248
|
+
|
|
244
249
|
data = {
|
|
245
250
|
"name": name,
|
|
246
251
|
"folder_uuid": folder_uuid,
|
|
@@ -300,7 +305,7 @@ def list_workflows(
|
|
|
300
305
|
public: bool | None = None,
|
|
301
306
|
starred: bool | None = None,
|
|
302
307
|
status: int | None = None,
|
|
303
|
-
workflow_type:
|
|
308
|
+
workflow_type: stjames.WORKFLOW_NAME | None = None,
|
|
304
309
|
page: int = 0,
|
|
305
310
|
size: int = 10,
|
|
306
311
|
) -> list[Workflow]:
|
|
@@ -828,6 +833,56 @@ def submit_scan_workflow(
|
|
|
828
833
|
return Workflow(**response.json())
|
|
829
834
|
|
|
830
835
|
|
|
836
|
+
def submit_macropka_workflow(
|
|
837
|
+
initial_smiles: str,
|
|
838
|
+
min_pH: int = 0,
|
|
839
|
+
max_pH: int = 14,
|
|
840
|
+
min_charge: int = -2,
|
|
841
|
+
max_charge: int = 2,
|
|
842
|
+
compute_solvation_energy: bool = True,
|
|
843
|
+
name: str = "Macropka Workflow",
|
|
844
|
+
folder_uuid: str | None = None,
|
|
845
|
+
max_credits: int | None = None,
|
|
846
|
+
) -> Workflow:
|
|
847
|
+
"""
|
|
848
|
+
Submits a macropka workflow to the API.
|
|
849
|
+
|
|
850
|
+
:param initial_smiles: The molecule used in the macropka workflow.
|
|
851
|
+
:param min_pH: The minimum pH to use in the macropka workflow.
|
|
852
|
+
:param max_pH: The maximum pH to use in the macropka workflow.
|
|
853
|
+
:param min_charge: The minimum charge to use in the macropka workflow.
|
|
854
|
+
:param max_charge: The maximum charge to use in the macropka workflow.
|
|
855
|
+
:param compute_solvation_energy: Whether to compute the solvation energy.
|
|
856
|
+
:param name: The name of the workflow.
|
|
857
|
+
:param folder_uuid: The UUID of the folder to store the workflow in.
|
|
858
|
+
:param max_credits: The maximum number of credits to use for the workflow.
|
|
859
|
+
:return: A Workflow object representing the submitted workflow.
|
|
860
|
+
:raises requests.HTTPError: if the request to the API fails.
|
|
861
|
+
"""
|
|
862
|
+
|
|
863
|
+
workflow_data = {
|
|
864
|
+
"min_pH": min_pH,
|
|
865
|
+
"max_pH": max_pH,
|
|
866
|
+
"min_charge": min_charge,
|
|
867
|
+
"max_charge": max_charge,
|
|
868
|
+
"compute_solvation_energy": compute_solvation_energy,
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
data = {
|
|
872
|
+
"name": name,
|
|
873
|
+
"folder_uuid": folder_uuid,
|
|
874
|
+
"workflow_type": "macropka",
|
|
875
|
+
"workflow_data": workflow_data,
|
|
876
|
+
"initial_smiles": initial_smiles,
|
|
877
|
+
"max_credits": max_credits,
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
with api_client() as client:
|
|
881
|
+
response = client.post("/workflow", json=data)
|
|
882
|
+
response.raise_for_status()
|
|
883
|
+
return Workflow(**response.json())
|
|
884
|
+
|
|
885
|
+
|
|
831
886
|
def submit_irc_workflow(
|
|
832
887
|
initial_molecule: dict[str, Any] | StJamesMolecule | RdkitMol | None = None,
|
|
833
888
|
method: stjames.Method | str = "uma_m_omol",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|