rowan-python 3.1.5__tar.gz → 3.1.7__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.7/.agents/plugins/marketplace.json +20 -0
- rowan_python-3.1.7/.claude-plugin/marketplace.json +17 -0
- rowan_python-3.1.7/.codex-plugin/plugin.json +37 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/test.yml +1 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/PKG-INFO +22 -4
- {rowan_python-3.1.5 → rowan_python-3.1.7}/README.md +20 -2
- rowan_python-3.1.7/examples/covalent_docking.py +48 -0
- rowan_python-3.1.7/examples/covalent_inhibitor_scan.py +35 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/double_ended_ts_search.py +8 -10
- {rowan_python-3.1.5 → rowan_python-3.1.7}/pixi.lock +341 -334
- {rowan_python-3.1.5 → rowan_python-3.1.7}/pyproject.toml +2 -2
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/__init__.py +7 -5
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/protein.py +2 -4
- rowan_python-3.1.7/rowan/test_utils.py +54 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/utils.py +40 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/__init__.py +5 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/analogue_docking.py +1 -0
- rowan_python-3.1.7/rowan/workflows/covalent_inhibitor_scan.py +129 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/docking.py +44 -16
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/double_ended_ts_search.py +5 -4
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/irc.py +42 -1
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_cofolding.py +3 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/SKILL.md +12 -65
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +5 -1
- rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +48 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/docking.md +31 -3
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +2 -2
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/irc.md +2 -1
- rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/mcp_execution.md +15 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +1 -0
- rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/python_sdk.md +64 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.envrc +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/publish-skill.yml +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.gitignore +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/AGENTS.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/CLAUDE.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/GEMINI.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/LICENSE +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/index.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/admet.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/analogue_docking.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/batch_docking.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/bde.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/binding_affinity.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformers.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformers_screen.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/dcd_download.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/descriptors.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/docking.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/docking_screen.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/electronic_properties.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/fukui_index.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/ion_mobility.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/irc.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/macropka.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/nmr.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/optimization.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pdb_download.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/periodic_dft.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/phenol_pka.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pka.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pocket_detection.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_md.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/rbfe_resubmit.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/redox_potential.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/resubmit_with_perturbations.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/scan.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/spin_states.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/strain.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/tautomer.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/template.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/webhook.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/mkdocs.yml +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/api_keys.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/calculation.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/config.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/constants.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/folder.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/molecule.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/project.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/py.typed +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/types.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/user.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/base.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/basic_calculation.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/binding_affinity.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pose_analysis_md.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_md.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/rbfe_graph.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/tautomer_search.py +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_md.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rowan",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "Rowan"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "computational-chemistry-and-biology",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Science"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rowan",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Rowan",
|
|
5
|
+
"email": "eli@rowansci.com"
|
|
6
|
+
},
|
|
7
|
+
"description": "Claude Code plugins for the Rowan computational chemistry platform",
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "computational-chemistry-and-biology",
|
|
11
|
+
"source": "./skills/computational-chemistry-and-biology",
|
|
12
|
+
"description": "Run computational chemistry and structural biology calculations through Rowan MCP tools or rowan-python",
|
|
13
|
+
"skills": ["./"],
|
|
14
|
+
"strict": false
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "computational-chemistry-and-biology",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Run computational chemistry and structural biology calculations through Rowan MCP tools or rowan-python",
|
|
5
|
+
"skills": "./skills/",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Rowan",
|
|
8
|
+
"email": "eli@rowansci.com",
|
|
9
|
+
"url": "https://rowansci.com"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://rowansci.com",
|
|
12
|
+
"repository": "https://github.com/rowansci/rowan-python",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"computational chemistry",
|
|
16
|
+
"structural biology",
|
|
17
|
+
"molecular simulation",
|
|
18
|
+
"Rowan"
|
|
19
|
+
],
|
|
20
|
+
"interface": {
|
|
21
|
+
"displayName": "Rowan Computational Chemistry",
|
|
22
|
+
"shortDescription": "Run computational chemistry and structural biology workflows with Rowan.",
|
|
23
|
+
"longDescription": "Use Rowan to choose and run molecular and protein workflows, including quantum chemistry, docking, molecular dynamics, protein structure prediction, and cheminformatics. The bundled skill provides shared scientific and workflow guidance for Rowan MCP tools and rowan-python, including safe defaults, result retrieval patterns, and detailed references.",
|
|
24
|
+
"developerName": "Rowan",
|
|
25
|
+
"category": "Science",
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"Read",
|
|
28
|
+
"Compute"
|
|
29
|
+
],
|
|
30
|
+
"websiteURL": "https://rowansci.com",
|
|
31
|
+
"defaultPrompt": [
|
|
32
|
+
"Run a Rowan calculation for this molecule.",
|
|
33
|
+
"Help me choose a Rowan workflow for my chemistry question.",
|
|
34
|
+
"Analyze this protein-ligand system with Rowan."
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rowan-python
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.7
|
|
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.228
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
|
|
17
17
|
# Rowan Python Library
|
|
@@ -30,9 +30,27 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
|
|
|
30
30
|
|
|
31
31
|
## Agent skill
|
|
32
32
|
|
|
33
|
-
Ships with a [skill](skills/computational-chemistry-and-biology/)
|
|
33
|
+
Ships with a [computational chemistry and biology skill](skills/computational-chemistry-and-biology/)
|
|
34
|
+
that helps coding agents choose and run Rowan workflows through either Rowan MCP tools or the
|
|
35
|
+
Rowan Python SDK.
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
### Claude Code
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
claude plugin marketplace add https://github.com/rowansci/rowan-python.git
|
|
41
|
+
claude plugin install computational-chemistry-and-biology@rowan
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Codex
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
codex plugin marketplace add rowansci/rowan-python --ref master
|
|
48
|
+
codex plugin add computational-chemistry-and-biology@rowan
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Start a new Claude Code or Codex session after installation. For manual installation, download the
|
|
52
|
+
[latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
|
|
53
|
+
and extract it into your agent's skills directory.
|
|
36
54
|
|
|
37
55
|
## Running examples
|
|
38
56
|
|
|
@@ -14,9 +14,27 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
|
|
|
14
14
|
|
|
15
15
|
## Agent skill
|
|
16
16
|
|
|
17
|
-
Ships with a [skill](skills/computational-chemistry-and-biology/)
|
|
17
|
+
Ships with a [computational chemistry and biology skill](skills/computational-chemistry-and-biology/)
|
|
18
|
+
that helps coding agents choose and run Rowan workflows through either Rowan MCP tools or the
|
|
19
|
+
Rowan Python SDK.
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
### Claude Code
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
claude plugin marketplace add https://github.com/rowansci/rowan-python.git
|
|
25
|
+
claude plugin install computational-chemistry-and-biology@rowan
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Codex
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
codex plugin marketplace add rowansci/rowan-python --ref master
|
|
32
|
+
codex plugin add computational-chemistry-and-biology@rowan
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Start a new Claude Code or Codex session after installation. For manual installation, download the
|
|
36
|
+
[latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
|
|
37
|
+
and extract it into your agent's skills directory.
|
|
20
38
|
|
|
21
39
|
## Running examples
|
|
22
40
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import rowan
|
|
2
|
+
|
|
3
|
+
# Set your API key or use the ROWAN_API_KEY environment variable
|
|
4
|
+
# rowan.api_key = "rowan-sk..."
|
|
5
|
+
folder = rowan.get_folder("examples")
|
|
6
|
+
|
|
7
|
+
# TG2, catalytic Cys277, acrylamide inhibitor (k_inact record P21980-00).
|
|
8
|
+
tg2_inhibitor = rowan.Molecule.from_smiles(
|
|
9
|
+
"C=CC(=O)NCCCC[C@H](NC(=O)Cc1ccc(Cl)c(Cl)c1)C(=O)N1CCN(C(=O)c2cccc3ccccc23)CC1"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
protein = rowan.create_protein_from_pdb_id("2Q3Z")
|
|
13
|
+
# Chain A is TG2; chain X is a small covalently-bound peptide in the crystal, not
|
|
14
|
+
# part of the protein. `protein.chains` order isn't guaranteed, so select by name.
|
|
15
|
+
protein = protein.select_chains(["A"])
|
|
16
|
+
protein.prepare()
|
|
17
|
+
|
|
18
|
+
# Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
|
|
19
|
+
center = [-1.079, -3.081, 18.122]
|
|
20
|
+
size = [22.22, 14.08, 21.74]
|
|
21
|
+
|
|
22
|
+
# 0-based, all-atom (including hydrogens) indices of the reacting atoms.
|
|
23
|
+
# Ligand: acrylamide's terminal =CH2 carbon. Protein: Cys277 SG, found by downloading
|
|
24
|
+
# the prepared structure and locating that atom in file order.
|
|
25
|
+
covalent_ligand_atom_index = 0
|
|
26
|
+
covalent_protein_atom_index = 4293
|
|
27
|
+
gnina_settings = rowan.GninaSettings(
|
|
28
|
+
scoring_function="gnina_cnn",
|
|
29
|
+
covalent_ligand_atom_index=covalent_ligand_atom_index,
|
|
30
|
+
covalent_protein_atom_index=covalent_protein_atom_index,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
workflow = rowan.submit_docking_workflow(
|
|
34
|
+
protein,
|
|
35
|
+
pocket=[center, size],
|
|
36
|
+
initial_molecule=tg2_inhibitor,
|
|
37
|
+
docking_settings=gnina_settings,
|
|
38
|
+
name="TG2 covalent docking (Cys277, 2Q3Z)",
|
|
39
|
+
folder=folder,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
print(f"View workflow privately at: https://labs.rowansci.com/docking/{workflow.uuid}")
|
|
43
|
+
|
|
44
|
+
result = workflow.result()
|
|
45
|
+
print(result)
|
|
46
|
+
|
|
47
|
+
for i, score in enumerate(result.scores):
|
|
48
|
+
print(f" Pose {i}: score={score.score:.3f} posebusters_valid={score.posebusters_valid}")
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import rowan
|
|
2
|
+
|
|
3
|
+
# Set your API key or use the ROWAN_API_KEY environment variable
|
|
4
|
+
# rowan.api_key = "rowan-sk..."
|
|
5
|
+
folder = rowan.get_folder("examples")
|
|
6
|
+
|
|
7
|
+
# BTK, catalytic Cys481. 4YHF already has a covalently-bound small-molecule inhibitor
|
|
8
|
+
# (residue 4C9) linked to Cys481 SG via the ligand's C1 atom.
|
|
9
|
+
protein = rowan.create_protein_from_pdb_id("4YHF")
|
|
10
|
+
protein = protein.select_chains(["A"])
|
|
11
|
+
protein.prepare(remove_heterogens=False)
|
|
12
|
+
|
|
13
|
+
# 0-based indices of Cys481 SG and the ligand's C1 atom, found by downloading the
|
|
14
|
+
# prepared PDB (protein.download_pdb_file()).
|
|
15
|
+
protein_reactive_atom_index = 1571
|
|
16
|
+
ligand_reactive_atom_index = 4492
|
|
17
|
+
|
|
18
|
+
workflow = rowan.submit_covalent_inhibitor_scan_workflow(
|
|
19
|
+
protein=protein,
|
|
20
|
+
protein_reactive_atom_index=protein_reactive_atom_index,
|
|
21
|
+
ligand_reactive_atom_index=ligand_reactive_atom_index,
|
|
22
|
+
settings=rowan.CovalentInhibitorScanSettings(scan_num=4),
|
|
23
|
+
name="BTK covalent inhibitor scan (Cys481, 4YHF)",
|
|
24
|
+
folder=folder,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
print(
|
|
28
|
+
f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
result = workflow.result()
|
|
32
|
+
print(result)
|
|
33
|
+
|
|
34
|
+
for distance, energy in result.get_energies():
|
|
35
|
+
print(f" distance={distance:.3f} Å energy={energy}")
|
|
@@ -22,22 +22,20 @@ H 0 0 2.3
|
|
|
22
22
|
C 0 0 0
|
|
23
23
|
N 0 0 1.2""",
|
|
24
24
|
)
|
|
25
|
-
fsm_settings = rowan.FSMSettings(
|
|
26
|
-
optimization_coordinates=rowan.FSMOptimizationCoordinates.CARTESIAN,
|
|
27
|
-
interpolation_method=rowan.FSMInterpolation.REDUNDANT_INTERNAL_COORDINATES,
|
|
28
|
-
min_num_nodes=7,
|
|
29
|
-
num_interpolation_points=5,
|
|
30
|
-
max_optimizer_iterations=3,
|
|
31
|
-
max_line_search_steps=2,
|
|
32
|
-
max_displacement=0.1,
|
|
33
|
-
)
|
|
34
25
|
|
|
26
|
+
# Freezing string method (FSM)
|
|
27
|
+
search_settings = rowan.StringMethodSettings(
|
|
28
|
+
freeze=True,
|
|
29
|
+
interpolation_method=rowan.Interpolation.GEODESIC,
|
|
30
|
+
)
|
|
31
|
+
# Use `freeze=False` for the growing string method (GSM)
|
|
32
|
+
# Use rowan.NEBSettings for nudged elastic band (NEB)
|
|
35
33
|
|
|
36
34
|
workflow = rowan.submit_double_ended_ts_search_workflow(
|
|
37
35
|
reactant=HCN,
|
|
38
36
|
product=CNH,
|
|
39
37
|
calculation_settings=rowan.Settings(method=rowan.Method.GFN2_XTB),
|
|
40
|
-
search_settings=
|
|
38
|
+
search_settings=search_settings,
|
|
41
39
|
optimize_inputs=True,
|
|
42
40
|
optimize_ts=True,
|
|
43
41
|
name="H-C≡N Isomerization",
|