rowan-python 2.0.0__tar.gz → 2.0.2__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 (43) hide show
  1. {rowan_python-2.0.0 → rowan_python-2.0.2}/PKG-INFO +1 -1
  2. rowan_python-2.0.2/examples/basic_calculation_from_json.py +21 -0
  3. rowan_python-2.0.2/examples/basic_calculation_with_constraint.py +33 -0
  4. rowan_python-2.0.2/examples/basic_calculation_with_solvent.py +55 -0
  5. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/bde.py +3 -0
  6. rowan_python-2.0.2/examples/data/workflow_example.json +190 -0
  7. rowan_python-2.0.2/examples/macropka.py +13 -0
  8. {rowan_python-2.0.0 → rowan_python-2.0.2}/pixi.lock +170 -211
  9. {rowan_python-2.0.0 → rowan_python-2.0.2}/pyproject.toml +1 -1
  10. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/__init__.py +1 -3
  11. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/rowan_rdkit/chem_utils.py +20 -20
  12. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/workflow.py +68 -13
  13. {rowan_python-2.0.0 → rowan_python-2.0.2}/.envrc +0 -0
  14. {rowan_python-2.0.0 → rowan_python-2.0.2}/.github/workflows/python-publish.yml +0 -0
  15. {rowan_python-2.0.0 → rowan_python-2.0.2}/.github/workflows/test.yml +0 -0
  16. {rowan_python-2.0.0 → rowan_python-2.0.2}/.gitignore +0 -0
  17. {rowan_python-2.0.0 → rowan_python-2.0.2}/.pre-commit-config.yaml +0 -0
  18. {rowan_python-2.0.0 → rowan_python-2.0.2}/LICENSE +0 -0
  19. {rowan_python-2.0.0 → rowan_python-2.0.2}/README.md +0 -0
  20. {rowan_python-2.0.0 → rowan_python-2.0.2}/docs/images/deciduous-tree-favicon.png +0 -0
  21. {rowan_python-2.0.0 → rowan_python-2.0.2}/docs/index.md +0 -0
  22. {rowan_python-2.0.0 → rowan_python-2.0.2}/docs/rowan_rdkit.md +0 -0
  23. {rowan_python-2.0.0 → rowan_python-2.0.2}/docs/stylesheets/colors.css +0 -0
  24. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/PROTAC_solubility.py +0 -0
  25. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/cofolding_screen.py +0 -0
  26. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/conformer_dependent_redox.py +0 -0
  27. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/conformers.py +0 -0
  28. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/docking_screen.py +0 -0
  29. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/irc.py +0 -0
  30. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/multistage_opt.py +0 -0
  31. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/optimization.py +0 -0
  32. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/phenol_pka.py +0 -0
  33. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/pka.py +0 -0
  34. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/protein_cofolding.py +0 -0
  35. {rowan_python-2.0.0 → rowan_python-2.0.2}/examples/scan.py +0 -0
  36. {rowan_python-2.0.0 → rowan_python-2.0.2}/mkdocs.yml +0 -0
  37. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/constants.py +0 -0
  38. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/folder.py +0 -0
  39. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/protein.py +0 -0
  40. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/py.typed +0 -0
  41. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/rowan_rdkit/__init__.py +0 -0
  42. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/user.py +0 -0
  43. {rowan_python-2.0.0 → rowan_python-2.0.2}/rowan/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 2.0.0
3
+ Version: 2.0.2
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
@@ -0,0 +1,21 @@
1
+ import json
2
+
3
+ import rowan
4
+
5
+ # rowan.api_key = ""
6
+
7
+ with open("examples/data/workflow_example.json") as f:
8
+ workflow_data = json.load(f)
9
+
10
+ result = (
11
+ rowan.submit_workflow(
12
+ workflow_type="basic_calculation",
13
+ workflow_data=workflow_data,
14
+ name="basic calculation from json",
15
+ initial_molecule=workflow_data["initial_molecule"],
16
+ )
17
+ .wait_for_result()
18
+ .fetch_latest()
19
+ )
20
+
21
+ 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)
@@ -31,4 +31,7 @@ result = rowan.submit_workflow(
31
31
  },
32
32
  )
33
33
 
34
+ result.wait_for_result()
35
+ result.fetch_latest(in_place=True)
36
+
34
37
  print(result)
@@ -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)