rowan-python 3.1.4__tar.gz → 3.1.6__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.6/.agents/plugins/marketplace.json +20 -0
- rowan_python-3.1.6/.claude-plugin/marketplace.json +17 -0
- rowan_python-3.1.6/.codex-plugin/plugin.json +37 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/PKG-INFO +2 -2
- {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/index.md +11 -0
- rowan_python-3.1.6/examples/binding_affinity.py +24 -0
- rowan_python-3.1.6/examples/covalent_docking.py +48 -0
- rowan_python-3.1.6/examples/covalent_inhibitor_scan.py +35 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/double_ended_ts_search.py +8 -10
- rowan_python-3.1.6/examples/periodic_dft.py +38 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/pixi.lock +416 -425
- {rowan_python-3.1.4 → rowan_python-3.1.6}/pyproject.toml +2 -2
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/__init__.py +11 -5
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/molecule.py +44 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/__init__.py +10 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/analogue_docking.py +1 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/basic_calculation.py +48 -0
- rowan_python-3.1.6/rowan/workflows/binding_affinity.py +140 -0
- rowan_python-3.1.6/rowan/workflows/covalent_inhibitor_scan.py +129 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/docking.py +44 -16
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/double_ended_ts_search.py +5 -4
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/irc.py +42 -1
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pose_analysis_md.py +5 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_cofolding.py +3 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/rbfe_graph.py +12 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/SKILL.md +3 -1
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +5 -1
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +25 -1
- rowan_python-3.1.6/skills/computational-chemistry-and-biology/reference/binding_affinity.md +61 -0
- rowan_python-3.1.6/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +48 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/docking.md +31 -3
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +2 -2
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/irc.md +2 -1
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +1 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +1 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +9 -0
- rowan_python-3.1.4/examples/periodic_dft.py +0 -58
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.envrc +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/publish-skill.yml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/test.yml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.gitignore +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/AGENTS.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/CLAUDE.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/GEMINI.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/LICENSE +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/README.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/admet.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/analogue_docking.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/batch_docking.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/bde.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformers.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformers_screen.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/dcd_download.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/descriptors.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/docking.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/docking_screen.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/electronic_properties.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/fukui_index.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/ion_mobility.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/irc.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/macropka.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/nmr.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/optimization.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pdb_download.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/phenol_pka.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pka.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pocket_detection.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_md.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/rbfe_resubmit.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/redox_potential.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/resubmit_with_perturbations.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/scan.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/spin_states.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/strain.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/tautomer.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/template.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/webhook.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/mkdocs.yml +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/api_keys.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/calculation.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/config.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/constants.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/folder.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/project.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/protein.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/py.typed +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/types.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/user.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/utils.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/base.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_md.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/tautomer_search.py +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_md.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.1.4 → rowan_python-3.1.6}/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 on the Rowan platform via the rowan Python package",
|
|
13
|
+
"skills": ["./"],
|
|
14
|
+
"strict": false
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "computational-chemistry-and-biology",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Run computational chemistry and structural biology calculations on the Rowan platform via the rowan-python package",
|
|
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 workflow selection guidance, safe defaults, result retrieval patterns, and links to detailed workflow 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.6
|
|
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
|
|
@@ -55,6 +55,17 @@
|
|
|
55
55
|
group_by_category: true
|
|
56
56
|
filters: ["!^__"]
|
|
57
57
|
|
|
58
|
+
## Binding Affinity
|
|
59
|
+
::: rowan.workflows.binding_affinity
|
|
60
|
+
handler: python
|
|
61
|
+
options:
|
|
62
|
+
show_source: false
|
|
63
|
+
show_root_heading: false
|
|
64
|
+
show_root_toc_entry: false
|
|
65
|
+
members_order: source
|
|
66
|
+
group_by_category: true
|
|
67
|
+
filters: ["!^__"]
|
|
68
|
+
|
|
58
69
|
## Basic Calculation
|
|
59
70
|
::: rowan.workflows.basic_calculation
|
|
60
71
|
handler: python
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
import rowan
|
|
4
|
+
|
|
5
|
+
# Set your API key or use the ROWAN_API_KEY environment variable
|
|
6
|
+
# rowan.api_key = "rowan-sk..."
|
|
7
|
+
folder = rowan.get_folder("examples")
|
|
8
|
+
data_dir = Path(__file__).parent / "data"
|
|
9
|
+
|
|
10
|
+
protein = rowan.upload_protein("TYK2", data_dir / "tyk2_structure.pdb")
|
|
11
|
+
all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
|
|
12
|
+
ligands = dict(list(all_ligands.items())[:3])
|
|
13
|
+
|
|
14
|
+
workflow = rowan.submit_binding_affinity_workflow(
|
|
15
|
+
protein=protein,
|
|
16
|
+
ligand_structures=list(ligands.values()),
|
|
17
|
+
name="Binding Affinity — TYK2 ligands",
|
|
18
|
+
folder=folder,
|
|
19
|
+
)
|
|
20
|
+
print(f"View at: https://labs.rowansci.com/binding-affinity/{workflow.uuid}")
|
|
21
|
+
|
|
22
|
+
result = workflow.result()
|
|
23
|
+
for name, score in zip(ligands.keys(), result.scores, strict=False):
|
|
24
|
+
print(f"{name}: {score.binding_affinity:.2f} kcal/mol (strain: {score.strain})")
|
|
@@ -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",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Band structure of bulk silicon using periodic DFT (Quantum ESPRESSO)."""
|
|
2
|
+
|
|
3
|
+
import rowan
|
|
4
|
+
|
|
5
|
+
# rowan.api_key = "rowan-sk..."
|
|
6
|
+
folder = rowan.get_folder("examples")
|
|
7
|
+
|
|
8
|
+
a = 5.431 # Å
|
|
9
|
+
si = rowan.Molecule.from_atoms(
|
|
10
|
+
atoms=[
|
|
11
|
+
rowan.Atom(atomic_number=14, position=(0.0, 0.0, 0.0)),
|
|
12
|
+
rowan.Atom(atomic_number=14, position=(a / 4, a / 4, a / 4)),
|
|
13
|
+
],
|
|
14
|
+
charge=0,
|
|
15
|
+
multiplicity=1,
|
|
16
|
+
cell=rowan.PeriodicCell(
|
|
17
|
+
lattice_vectors=((0.0, a / 2, a / 2), (a / 2, 0.0, a / 2), (a / 2, a / 2, 0.0))
|
|
18
|
+
),
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
workflow = rowan.submit_basic_calculation_workflow(
|
|
22
|
+
initial_molecule=si,
|
|
23
|
+
tasks=["band_structure"],
|
|
24
|
+
method="PBE",
|
|
25
|
+
basis_set="SSSP_PBE_efficiency",
|
|
26
|
+
pbc_dft_settings=rowan.PBCDFTSettings(kpoints=(2, 2, 2)),
|
|
27
|
+
name="Si band structure",
|
|
28
|
+
folder=folder,
|
|
29
|
+
)
|
|
30
|
+
print(f"https://labs.rowansci.com/calculation/{workflow.uuid}")
|
|
31
|
+
result = workflow.result()
|
|
32
|
+
|
|
33
|
+
print(f"Symmetry: space group {result.symmetry}")
|
|
34
|
+
print(f"XRD peaks: {len(result.xrd_peaks)} reflections")
|
|
35
|
+
print(f"Band gap: {result.band_gap:.4f} Ha") # ~0.020 Ha (PBE underestimates Si's 1.12 eV gap)
|
|
36
|
+
print(f"VBM: {result.band_structure.valence_band_maximum:.4f} Ha")
|
|
37
|
+
print(f"CBM: {result.band_structure.conduction_band_minimum:.4f} Ha")
|
|
38
|
+
print(f"DOS: {len(result.density_of_states)} points")
|