rowan-python 3.1.0__tar.gz → 3.1.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.
- rowan_python-3.1.2/.github/workflows/publish-skill.yml +28 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/PKG-INFO +4 -2
- {rowan_python-3.1.0 → rowan_python-3.1.2}/README.md +2 -0
- rowan_python-3.1.2/examples/rbfe_resubmit.py +51 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/retrieve_workflow.py +1 -1
- {rowan_python-3.1.0 → rowan_python-3.1.2}/pixi.lock +163 -163
- {rowan_python-3.1.0 → rowan_python-3.1.2}/pyproject.toml +2 -2
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/__init__.py +1 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/protein_cofolding.py +35 -13
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/rbfe_graph.py +32 -8
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/relative_binding_free_energy_perturbation.py +11 -1
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/SKILL.md +1 -1
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +4 -3
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +33 -2
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +8 -3
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.envrc +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.github/workflows/test.yml +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.gitignore +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/AGENTS.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/CLAUDE.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/GEMINI.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/LICENSE +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/docs/index.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/admet.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/analogue_docking.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/basic_calculation.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/batch_docking.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/bde.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/conformers.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/conformers_screen.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/dcd_download.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/descriptors.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/docking_screen.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/electronic_properties.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/fukui_index.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/ion_mobility.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/irc.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/macropka.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/nmr.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/optimization.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/pdb_download.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/periodic_dft.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/phenol_pka.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/pka.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/pocket_detection.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/protein_md.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/redox_potential.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/scan.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/spin_states.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/strain.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/tautomer.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/template.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/examples/webhook.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/mkdocs.yml +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/api_keys.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/calculation.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/config.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/constants.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/folder.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/molecule.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/project.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/protein.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/py.typed +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/types.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/user.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/utils.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/__init__.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/analogue_docking.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/base.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/basic_calculation.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/docking.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/irc.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/pose_analysis_md.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/protein_md.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/rowan/workflows/tautomer_search.py +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/docking.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/protein_md.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.1.0 → rowan_python-3.1.2}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Publish Skill Zip
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
paths:
|
|
7
|
+
- 'skills/computational-chemistry-and-biology/**'
|
|
8
|
+
- '.github/workflows/publish-skill.yml'
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
publish:
|
|
16
|
+
if: github.repository == 'rowansci/rowan-python'
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- name: Zip skill
|
|
21
|
+
run: cd skills && zip -r ../computational-chemistry-and-biology-skill.zip computational-chemistry-and-biology
|
|
22
|
+
- name: Publish/refresh release
|
|
23
|
+
uses: softprops/action-gh-release@v2
|
|
24
|
+
with:
|
|
25
|
+
tag_name: skill-latest
|
|
26
|
+
name: "Computational Chemistry & Biology Skill (latest)"
|
|
27
|
+
prerelease: true
|
|
28
|
+
files: computational-chemistry-and-biology-skill.zip
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rowan-python
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.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
|
|
@@ -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.208
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
|
|
17
17
|
# Rowan Python Library
|
|
@@ -32,6 +32,8 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
|
|
|
32
32
|
|
|
33
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
34
|
|
|
35
|
+
Download the latest skill as a zip [here](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip), then unzip it into your agent's skills folder.
|
|
36
|
+
|
|
35
37
|
## Running examples
|
|
36
38
|
|
|
37
39
|
To run the examples, you will need to set your ROWAN_API_KEY environment variable or set it directly in the script.
|
|
@@ -16,6 +16,8 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
|
|
|
16
16
|
|
|
17
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
18
|
|
|
19
|
+
Download the latest skill as a zip [here](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip), then unzip it into your agent's skills folder.
|
|
20
|
+
|
|
19
21
|
## Running examples
|
|
20
22
|
|
|
21
23
|
To run the examples, you will need to set your ROWAN_API_KEY environment variable or set it directly in the script.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Extend a converged RBFE graph with an additional ligand via reuse.
|
|
2
|
+
|
|
3
|
+
A completed RBFE graph holds converged per-edge relative free energies (ddG) on
|
|
4
|
+
each ligand-pair edge. Passing it back as `seed_graph` freezes those edges and
|
|
5
|
+
their results, constructs only the edges incident to the new ligand (atom-mapping
|
|
6
|
+
plus alchemical-path setup), and restricts the subsequent FEP to those edges -- the
|
|
7
|
+
existing complex/solvent legs are not resimulated. A per-ligand relative binding
|
|
8
|
+
free energy for the new ligand (relative to the reference ligand the graph is
|
|
9
|
+
anchored on) is then recovered by re-solving the maximum-likelihood estimate over
|
|
10
|
+
the augmented edge set.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import rowan
|
|
14
|
+
|
|
15
|
+
# Set your API key or use the ROWAN_API_KEY environment variable
|
|
16
|
+
# rowan.api_key = "rowan-sk..."
|
|
17
|
+
|
|
18
|
+
# UUID of a COMPLETED relative_binding_free_energy_perturbation workflow to extend.
|
|
19
|
+
FINISHED_RBFE_UUID = "your-completed-rbfe-uuid"
|
|
20
|
+
|
|
21
|
+
folder = rowan.get_folder("examples")
|
|
22
|
+
|
|
23
|
+
finished = rowan.retrieve_workflow(FINISHED_RBFE_UUID).result()
|
|
24
|
+
print(f"Finished study: {len(finished.ligands)} ligands, {len(finished.edges)} edges with ddG")
|
|
25
|
+
|
|
26
|
+
# Combine the finished study's ligands with the newly designed one(s) to score.
|
|
27
|
+
new_ligands = rowan.load_named_ligands("path/to/new_ligands.sdf")
|
|
28
|
+
ligands = {**finished.ligands, **new_ligands}
|
|
29
|
+
|
|
30
|
+
extended_graph = rowan.submit_relative_binding_free_energy_graph_workflow(
|
|
31
|
+
ligands=ligands,
|
|
32
|
+
seed_graph=finished.graph,
|
|
33
|
+
folder=folder,
|
|
34
|
+
name="RBFE Graph (extended)",
|
|
35
|
+
).result()
|
|
36
|
+
|
|
37
|
+
resubmit = rowan.submit_relative_binding_free_energy_perturbation_workflow(
|
|
38
|
+
graph_result=extended_graph,
|
|
39
|
+
protein=finished.protein,
|
|
40
|
+
folder=folder,
|
|
41
|
+
name="RBFE Perturbation (resubmit)",
|
|
42
|
+
)
|
|
43
|
+
print(
|
|
44
|
+
"Resubmitted! View at: "
|
|
45
|
+
f"https://labs.rowansci.com/relative-binding-free-energy-perturbation/{resubmit.uuid}"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
result = resubmit.result()
|
|
49
|
+
for name in new_ligands:
|
|
50
|
+
dg = result.ligand_dg_results[name]
|
|
51
|
+
print(f"{name}: dG = {dg.dg:.2f} +/- {dg.dg_err:.2f} kcal/mol")
|
|
@@ -9,7 +9,7 @@ import rowan
|
|
|
9
9
|
# 2. The last segment of the workflow URL in the Rowan UI:
|
|
10
10
|
# https://labs.rowansci.com/.../<uuid>
|
|
11
11
|
# 3. Listed via rowan.list_workflows()
|
|
12
|
-
workflow = rowan.retrieve_workflow("
|
|
12
|
+
workflow = rowan.retrieve_workflow("your-workflow-uuid")
|
|
13
13
|
|
|
14
14
|
result = workflow.result()
|
|
15
15
|
print(result)
|