rowan-python 3.0.11__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.
- {rowan_python-3.0.11 → rowan_python-3.1.0}/PKG-INFO +6 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/README.md +4 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/docs/index.md +11 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/basic_calculation.py +2 -2
- rowan_python-3.1.0/examples/bde.py +62 -0
- rowan_python-3.1.0/examples/conformers.py +25 -0
- rowan_python-3.1.0/examples/conformers_screen.py +46 -0
- rowan_python-3.1.0/examples/data/ibuprofen_conformers.sdf +576 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/irc.py +2 -1
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/membrane_permeability.py +1 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/periodic_dft.py +1 -1
- rowan_python-3.1.0/examples/protein_cofolding_with_templates.py +61 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/tautomer.py +1 -1
- {rowan_python-3.0.11 → rowan_python-3.1.0}/mkdocs.yml +0 -1
- {rowan_python-3.0.11 → rowan_python-3.1.0}/pixi.lock +380 -285
- {rowan_python-3.0.11 → rowan_python-3.1.0}/pyproject.toml +9 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/__init__.py +13 -1
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/config.py +1 -7
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/folder.py +5 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/molecule.py +13 -6
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/project.py +4 -4
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/protein.py +8 -7
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/types.py +4 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/user.py +26 -20
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/__init__.py +9 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/admet.py +2 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/analogue_docking.py +31 -14
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/base.py +49 -13
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/basic_calculation.py +18 -10
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/batch_docking.py +2 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/bde.py +37 -22
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/conformer_search.py +116 -13
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/descriptors.py +14 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/docking.py +23 -7
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/double_ended_ts_search.py +20 -9
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/electronic_properties.py +13 -6
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/fukui.py +12 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +19 -7
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/interaction_energy_decomposition.py +17 -9
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/ion_mobility.py +19 -6
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/irc.py +124 -67
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/macropka.py +2 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/membrane_permeability.py +8 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/multistage_optimization.py +18 -4
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/nmr.py +12 -4
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/pka.py +5 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/pose_analysis_md.py +42 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/protein_binder_design.py +14 -1
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/protein_cofolding.py +11 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/protein_md.py +53 -2
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/rbfe_graph.py +11 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/redox_potential.py +7 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/scan.py +47 -12
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/solubility.py +2 -3
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/solvent_dependent_conformers.py +19 -23
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/spin_states.py +52 -4
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/strain.py +7 -5
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/tautomer_search.py +9 -7
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/SKILL.md +127 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/admet.md +31 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/analogue_docking.md +62 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/basic_calculation.md +155 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/batch_docking.md +46 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/bde.md +40 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/conformer_search.md +38 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/descriptors.md +30 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/docking.md +59 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +39 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/electronic_properties.md +33 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/fukui.md +35 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +30 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +31 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/ion_mobility.md +29 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/irc.md +39 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/macropka.md +42 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +53 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/msa.md +32 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +31 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/nmr.md +31 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pka.md +51 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pocket_detection.md +53 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +63 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +64 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +95 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_md.md +63 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/protein_prep.md +75 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +50 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/redox_potential.md +30 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +87 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/scan.md +59 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/solubility.md +42 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +41 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/spin_states.md +41 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/strain.md +36 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/tautomer_search.md +41 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/reference/webhooks.md +37 -0
- rowan_python-3.1.0/skills/computational-chemistry-and-biology/scripts/check_env.py +69 -0
- rowan_python-3.0.11/docs/rowan_rdkit.md +0 -8
- rowan_python-3.0.11/examples/bde.py +0 -40
- rowan_python-3.0.11/examples/conformers.py +0 -35
- rowan_python-3.0.11/rowan/rowan_rdkit/__init__.py +0 -29
- rowan_python-3.0.11/rowan/rowan_rdkit/chem_utils.py +0 -1019
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.envrc +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.github/workflows/test.yml +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.gitignore +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/AGENTS.md +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/CLAUDE.md +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/GEMINI.md +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/LICENSE +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/admet.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/analogue_docking.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/batch_docking.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/dcd_download.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/descriptors.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/docking_screen.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/electronic_properties.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/fukui_index.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/ion_mobility.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/macropka.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/nmr.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/optimization.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/pdb_download.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/phenol_pka.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/pka.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/pocket_detection.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/protein_md.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/redox_potential.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/scan.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/spin_states.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/strain.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/template.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/examples/webhook.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/api_keys.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/calculation.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/constants.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/py.typed +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/utils.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.0.11 → rowan_python-3.1.0}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.0.11 → 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
|
|
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.
|
|
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="
|
|
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)])
|