rowan-python 3.0.12__tar.gz → 3.1.0__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 (176) hide show
  1. {rowan_python-3.0.12 → rowan_python-3.1.0}/PKG-INFO +6 -2
  2. {rowan_python-3.0.12 → rowan_python-3.1.0}/README.md +4 -0
  3. {rowan_python-3.0.12 → rowan_python-3.1.0}/docs/index.md +11 -0
  4. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/basic_calculation.py +2 -2
  5. rowan_python-3.1.0/examples/bde.py +62 -0
  6. rowan_python-3.1.0/examples/conformers.py +25 -0
  7. rowan_python-3.1.0/examples/conformers_screen.py +46 -0
  8. rowan_python-3.1.0/examples/data/ibuprofen_conformers.sdf +576 -0
  9. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/irc.py +2 -1
  10. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/membrane_permeability.py +1 -3
  11. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/periodic_dft.py +1 -1
  12. rowan_python-3.1.0/examples/protein_cofolding_with_templates.py +61 -0
  13. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/tautomer.py +1 -1
  14. {rowan_python-3.0.12 → rowan_python-3.1.0}/pixi.lock +380 -285
  15. {rowan_python-3.0.12 → rowan_python-3.1.0}/pyproject.toml +9 -3
  16. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/__init__.py +13 -1
  17. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/config.py +1 -7
  18. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/folder.py +5 -5
  19. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/molecule.py +13 -6
  20. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/project.py +4 -4
  21. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/protein.py +8 -7
  22. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/types.py +4 -2
  23. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/user.py +26 -20
  24. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/__init__.py +9 -2
  25. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/admet.py +2 -3
  26. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/analogue_docking.py +31 -14
  27. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/base.py +49 -13
  28. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/basic_calculation.py +18 -10
  29. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/batch_docking.py +2 -2
  30. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/bde.py +37 -22
  31. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/conformer_search.py +116 -13
  32. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/descriptors.py +14 -5
  33. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/docking.py +23 -7
  34. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/double_ended_ts_search.py +20 -9
  35. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/electronic_properties.py +13 -6
  36. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/fukui.py +12 -5
  37. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +19 -7
  38. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/interaction_energy_decomposition.py +17 -9
  39. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/ion_mobility.py +19 -6
  40. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/irc.py +124 -67
  41. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/macropka.py +2 -3
  42. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/membrane_permeability.py +8 -5
  43. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/multistage_optimization.py +18 -4
  44. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/nmr.py +12 -4
  45. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/pka.py +5 -3
  46. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/pose_analysis_md.py +42 -5
  47. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/protein_binder_design.py +14 -1
  48. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/protein_cofolding.py +11 -2
  49. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/protein_md.py +53 -2
  50. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/rbfe_graph.py +11 -3
  51. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/redox_potential.py +7 -5
  52. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/scan.py +47 -12
  53. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/solubility.py +2 -3
  54. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/solvent_dependent_conformers.py +19 -23
  55. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/spin_states.py +52 -4
  56. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/strain.py +7 -5
  57. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/tautomer_search.py +9 -7
  58. rowan_python-3.1.0/skills/computational-chemistry-and-biology/SKILL.md +127 -0
  59. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/admet.md +31 -0
  60. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/analogue_docking.md +62 -0
  61. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/basic_calculation.md +155 -0
  62. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/batch_docking.md +46 -0
  63. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/bde.md +40 -0
  64. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/conformer_search.md +38 -0
  65. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/descriptors.md +30 -0
  66. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/docking.md +59 -0
  67. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +39 -0
  68. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/electronic_properties.md +33 -0
  69. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/fukui.md +35 -0
  70. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +30 -0
  71. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +31 -0
  72. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/ion_mobility.md +29 -0
  73. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/irc.md +39 -0
  74. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/macropka.md +42 -0
  75. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +53 -0
  76. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/msa.md +32 -0
  77. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +31 -0
  78. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/nmr.md +31 -0
  79. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pka.md +51 -0
  80. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pocket_detection.md +53 -0
  81. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +63 -0
  82. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +64 -0
  83. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +95 -0
  84. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_md.md +63 -0
  85. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_prep.md +75 -0
  86. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +50 -0
  87. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/redox_potential.md +30 -0
  88. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +87 -0
  89. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/scan.md +59 -0
  90. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/solubility.md +42 -0
  91. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +41 -0
  92. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/spin_states.md +41 -0
  93. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/strain.md +36 -0
  94. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/tautomer_search.md +41 -0
  95. rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/webhooks.md +37 -0
  96. rowan_python-3.1.0/skills/computational-chemistry-and-biology/scripts/check_env.py +69 -0
  97. rowan_python-3.0.12/examples/bde.py +0 -40
  98. rowan_python-3.0.12/examples/conformers.py +0 -35
  99. {rowan_python-3.0.12 → rowan_python-3.1.0}/.envrc +0 -0
  100. {rowan_python-3.0.12 → rowan_python-3.1.0}/.github/workflows/build-and-deploy-docs.yml +0 -0
  101. {rowan_python-3.0.12 → rowan_python-3.1.0}/.github/workflows/python-publish.yml +0 -0
  102. {rowan_python-3.0.12 → rowan_python-3.1.0}/.github/workflows/test.yml +0 -0
  103. {rowan_python-3.0.12 → rowan_python-3.1.0}/.gitignore +0 -0
  104. {rowan_python-3.0.12 → rowan_python-3.1.0}/.pre-commit-config.yaml +0 -0
  105. {rowan_python-3.0.12 → rowan_python-3.1.0}/AGENTS.md +0 -0
  106. {rowan_python-3.0.12 → rowan_python-3.1.0}/CLAUDE.md +0 -0
  107. {rowan_python-3.0.12 → rowan_python-3.1.0}/GEMINI.md +0 -0
  108. {rowan_python-3.0.12 → rowan_python-3.1.0}/LICENSE +0 -0
  109. {rowan_python-3.0.12 → rowan_python-3.1.0}/docs/images/deciduous-tree-favicon.png +0 -0
  110. {rowan_python-3.0.12 → rowan_python-3.1.0}/docs/stylesheets/colors.css +0 -0
  111. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/PROTAC_solubility.py +0 -0
  112. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/admet.py +0 -0
  113. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/analogue_docking.py +0 -0
  114. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/aqueous_solubility.py +0 -0
  115. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/basic_calculation_from_json.py +0 -0
  116. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/basic_calculation_with_constraint.py +0 -0
  117. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/basic_calculation_with_solvent.py +0 -0
  118. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/batch_docking.py +0 -0
  119. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/boltz_paired_msa.py +0 -0
  120. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/boltz_single_msa.py +0 -0
  121. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/chai_paired_msa.py +0 -0
  122. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/chai_single_msa.py +0 -0
  123. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/cofolding_screen.py +0 -0
  124. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/colabfold_paired_msa.py +0 -0
  125. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/colabfold_single_msa.py +0 -0
  126. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/conformer_dependent_redox.py +0 -0
  127. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/1iep_receptorH.pdb +0 -0
  128. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/Al_FCC.xyz +0 -0
  129. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/citalopram_1iep.xyz +0 -0
  130. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/tyk2_ligands.sdf +0 -0
  131. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/tyk2_structure.pdb +0 -0
  132. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/data/workflow_example.json +0 -0
  133. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/dcd_download.py +0 -0
  134. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/descriptors.py +0 -0
  135. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/docking_screen.py +0 -0
  136. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/double_ended_ts_search.py +0 -0
  137. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/electronic_properties.py +0 -0
  138. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/estimate_workflow.py +0 -0
  139. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/fukui_index.py +0 -0
  140. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/hydrogen_bond_basicity.py +0 -0
  141. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/interaction_energy_decomposition.py +0 -0
  142. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/ion_mobility.py +0 -0
  143. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/macropka.py +0 -0
  144. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/multistage_optimization.py +0 -0
  145. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/nmr.py +0 -0
  146. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/optimization.py +0 -0
  147. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/pdb_download.py +0 -0
  148. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/phenol_pka.py +0 -0
  149. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/pka.py +0 -0
  150. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/pocket_detection.py +0 -0
  151. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/pose_analysis_md.py +0 -0
  152. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/project_scoped_api_key.py +0 -0
  153. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/protein_binder_design.py +0 -0
  154. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/protein_cofolding.py +0 -0
  155. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/protein_cofolding_with_constraints.py +0 -0
  156. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/protein_md.py +0 -0
  157. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/rbfe_graph.py +0 -0
  158. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/redox_potential.py +0 -0
  159. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/relative_binding_free_energy_perturbation.py +0 -0
  160. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/retrieve_workflow.py +0 -0
  161. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/scan.py +0 -0
  162. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/solvent_dependent_conformers.py +0 -0
  163. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/spin_states.py +0 -0
  164. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/strain.py +0 -0
  165. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/template.py +0 -0
  166. {rowan_python-3.0.12 → rowan_python-3.1.0}/examples/webhook.py +0 -0
  167. {rowan_python-3.0.12 → rowan_python-3.1.0}/mkdocs.yml +0 -0
  168. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/api_keys.py +0 -0
  169. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/calculation.py +0 -0
  170. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/constants.py +0 -0
  171. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/py.typed +0 -0
  172. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/utils.py +0 -0
  173. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/constants.py +0 -0
  174. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/msa.py +0 -0
  175. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/pocket_detection.py +0 -0
  176. {rowan_python-3.0.12 → rowan_python-3.1.0}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.0.12
3
+ Version: 3.1.0
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
@@ -11,7 +11,7 @@ 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.183
14
+ Requires-Dist: stjames>=0.0.204
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -28,6 +28,10 @@ The Rowan Python library provides convenient access to the Rowan API from applic
28
28
 
29
29
  The documentation is available [here](https://docs.rowansci.com/python-api).
30
30
 
31
+ ## Agent skill
32
+
33
+ Ships with a [skill](skills/computational-chemistry-and-biology/) that makes it easy for coding agents to use Rowan's tools to power chemistry and biology tasks. To use it, copy the directory into your agent's skills folder.
34
+
31
35
  ## Running examples
32
36
 
33
37
  To run the examples, you will need to set your ROWAN_API_KEY environment variable or set it directly in the script.
@@ -12,6 +12,10 @@ The Rowan Python library provides convenient access to the Rowan API from applic
12
12
 
13
13
  The documentation is available [here](https://docs.rowansci.com/python-api).
14
14
 
15
+ ## Agent skill
16
+
17
+ Ships with a [skill](skills/computational-chemistry-and-biology/) that makes it easy for coding agents to use Rowan's tools to power chemistry and biology tasks. To use it, copy the directory into your agent's skills folder.
18
+
15
19
  ## Running examples
16
20
 
17
21
  To run the examples, you will need to set your ROWAN_API_KEY environment variable or set it directly in the script.
@@ -408,6 +408,17 @@
408
408
  group_by_category: true
409
409
  filters: ["!^__"]
410
410
 
411
+ ## Molecule Class and Functions
412
+ ::: rowan.molecule
413
+ handler: python
414
+ options:
415
+ show_source: false
416
+ show_root_heading: false
417
+ show_root_toc_entry: false
418
+ members_order: source
419
+ group_by_category: true
420
+ filters: ["!^__"]
421
+
411
422
  ## User Class and Functions
412
423
  ::: rowan.user
413
424
  handler: python
@@ -5,8 +5,8 @@ import rowan
5
5
  folder = rowan.get_folder("examples")
6
6
 
7
7
  workflow = rowan.submit_basic_calculation_workflow(
8
- initial_molecule="CC(=C)C=C",
9
- preset="semiempirical",
8
+ initial_molecule=rowan.Molecule.from_smiles("CC(=C)C=C"),
9
+ preset="rapid_semiempirical",
10
10
  tasks=["optimize"],
11
11
  name="Isoprene Optimization",
12
12
  folder=folder,
@@ -0,0 +1,62 @@
1
+ """
2
+ Calculate Bond-Dissociation Energies (BDE) with the Rowan API.
3
+
4
+ `mode` is a BDE method string (the level of theory):
5
+ - "omol25_conserving_s": neural network potential (default)
6
+ - "g_xtb//gfn2_xtb": semiempirical
7
+ - "r2scan3c//gfn2_xtb": DFT single point
8
+
9
+ Choose which bonds to break:
10
+ - all_CH=True / all_CX=True: every C-H / every C-X (carbon-halogen) bond
11
+ - fragment_indices=[[...]]: 1-indexed atoms of a fragment to split off (each fragment must
12
+ connect to the rest by a single bond) -- e.g. [[9]] splits off one hydrogen,
13
+ [[3, 9]] splits off a whole group like -OH
14
+
15
+ Use the bond finders to get indices: rowan.find_ch_bonds(mol), rowan.find_cx_bonds(mol),
16
+ or rowan.find_bonds(mol, element_a, element_b, distance_max).
17
+
18
+ See documentation at: https://docs.rowansci.com/science/workflows/bond-dissociation-energy
19
+ """
20
+
21
+ import rowan
22
+
23
+ # Set your API key or use the ROWAN_API_KEY environment variable
24
+ # rowan.api_key = "rowan-sk..."
25
+ folder = rowan.get_folder("examples")
26
+
27
+ mol = rowan.Molecule.from_smiles("CCCC") # butane
28
+
29
+ # Break every C-H bond and report each one's BDE.
30
+ workflow = rowan.submit_bde_workflow(
31
+ initial_molecule=mol,
32
+ mode="omol25_conserving_s",
33
+ all_CH=True,
34
+ name="Butane C-H BDEs",
35
+ folder=folder,
36
+ )
37
+
38
+ print(f"View workflow privately at: https://labs.rowansci.com/bde/{workflow.uuid}")
39
+ result = workflow.result()
40
+ print(result)
41
+ print(result.bdes)
42
+ # e.g. <BDEResult energy=-... Ha bdes=...>
43
+
44
+
45
+ # To target a specific bond instead of a whole class, pass its fragment atoms (1-indexed).
46
+ # This reaches bonds the all_CH / all_CX flags don't cover -- here, the ethanol O-H bond.
47
+ ethanol = rowan.Molecule.from_smiles("CCO")
48
+ oh_bonds = rowan.find_bonds(ethanol, element_a=8, element_b=1, distance_max=1.1)
49
+ oh_hydrogen = oh_bonds[0][1] # the hydroxyl H
50
+
51
+ oh_workflow = rowan.submit_bde_workflow(
52
+ initial_molecule=ethanol,
53
+ mode="omol25_conserving_s",
54
+ fragment_indices=[[oh_hydrogen]], # split off that H -> the ethanol O-H BDE
55
+ name="Ethanol O-H BDE",
56
+ folder=folder,
57
+ )
58
+
59
+ print(f"View workflow privately at: https://labs.rowansci.com/bde/{oh_workflow.uuid}")
60
+ oh_result = oh_workflow.result()
61
+ print(oh_result)
62
+ print(oh_result.bdes)
@@ -0,0 +1,25 @@
1
+ """
2
+ Calculate the conformers of a molecule using the Rowan API.
3
+
4
+ Conformer generation defaults to OpenConf; pass `conf_gen_settings=` to choose a
5
+ different generator (ETKDG, iMTD-GC, MCMM).
6
+
7
+ See documentation at: https://docs.rowansci.com/science/workflows/conformers
8
+ """
9
+
10
+ import rowan
11
+
12
+ # Set your API key or use the ROWAN_API_KEY environment variable
13
+ # rowan.api_key = "rowan-sk..."
14
+ folder = rowan.get_folder("examples")
15
+
16
+ workflow = rowan.submit_conformer_search_workflow(
17
+ initial_molecule=rowan.Molecule.from_smiles("CCOCC"),
18
+ folder=folder,
19
+ )
20
+
21
+ print(f"View workflow privately at: https://labs.rowansci.com/conformer-search/{workflow.uuid}")
22
+
23
+ result = workflow.result()
24
+ print(result)
25
+ # e.g. <ConformerSearchResult conformers=12>
@@ -0,0 +1,46 @@
1
+ """
2
+ Rank a conformer ensemble you already have, using the Rowan API (screen-only mode).
3
+
4
+ Conformer search normally *generates* conformers and then optimizes, deduplicates,
5
+ and ranks them. If you already have 3D geometries -- from another tool (RDKit,
6
+ CREST, OpenBabel), a crystal or MD ensemble, an SDF on disk, or a previous
7
+ workflow -- you can skip generation by passing them as `initial_conformers`. Rowan
8
+ then runs only the screening half: optimize each at a consistent level of theory,
9
+ deduplicate, and rank by energy.
10
+
11
+ The conformers must be a genuine ensemble of one molecule with identical atom
12
+ ordering (they are compared atom-by-atom during deduplication). Reading them from a
13
+ single multi-conformer SDF, as below, guarantees that. Leave `conf_gen_settings` as
14
+ None.
15
+
16
+ See documentation at: https://docs.rowansci.com/science/workflows/conformers
17
+ """
18
+
19
+ from pathlib import Path
20
+
21
+ import rowan
22
+
23
+ # Set your API key or use the ROWAN_API_KEY environment variable
24
+ # rowan.api_key = "rowan-sk..."
25
+ folder = rowan.get_folder("examples")
26
+
27
+ # Read a multi-conformer SDF: eight conformers of ibuprofen, one molecule, consistent
28
+ # atom ordering across every record.
29
+ sdf_path = Path(__file__).parent / "data" / "ibuprofen_conformers.sdf"
30
+ conformers = rowan.Molecule.molecules_from_sdf(sdf_path)
31
+ print(f"read {len(conformers)} conformers from {sdf_path.name}")
32
+
33
+ workflow = rowan.submit_conformer_search_workflow(
34
+ initial_conformers=conformers,
35
+ conf_gen_settings=None, # screen-only: skip generation, just optimize/dedup/rank
36
+ name="Conformer Screen",
37
+ folder=folder,
38
+ )
39
+
40
+ print(f"View workflow privately at: https://labs.rowansci.com/conformer-search/{workflow.uuid}")
41
+
42
+ result = workflow.result()
43
+ print(result)
44
+ # e.g. <ConformerSearchResult conformers=3> (8 supplied -> deduplicated and ranked)
45
+
46
+ print("relative energies (kcal/mol):", [round(e, 2) for e in result.get_energies(relative=True)])