rowan-python 3.1.11__tar.gz → 3.1.13__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.11 → rowan_python-3.1.13}/.claude-plugin/marketplace.json +1 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.github/workflows/python-publish.yml +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/PKG-INFO +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/api-keys.md +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/calculation.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/folder.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/molecule.md +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/project.md +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/protein.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/user.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/webhooks.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/api/workflow.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/index.md +2 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/admet.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/analogue-docking.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/basic-calculation.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/batch-docking.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/binding-affinity.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/bond-dissociation-energy.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/conformer-search.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/covalent-inhibitor-scan.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/descriptors.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/docking.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/double-ended-ts-search.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/electronic-properties.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/fukui.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/interaction-energy-decomposition.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/ion-mobility.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/irc.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/logp.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/macropka.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/membrane-permeability.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/msa.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/multistage-optimization.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/nmr.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/pka.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/pocket-detection.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/pose-analysis-md.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/protein-binder-design.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/protein-cofolding.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/protein-md.md +1 -1
- rowan_python-3.1.13/docs/workflows/protein-preparation.md +11 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/rbfe-graph.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/redox-potential.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/relative-binding-free-energy-perturbation.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/scan.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/solubility.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/solvent-dependent-conformers.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/spin-states.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/strain.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/tautomer-search.md +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/analogue_docking.py +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/batch_docking.py +7 -5
- rowan_python-3.1.13/examples/batch_solubility.py +21 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/binding_affinity.py +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/covalent_docking.py +22 -6
- rowan_python-3.1.13/examples/covalent_inhibitor_scan.py +59 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/docking.py +8 -4
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/docking_screen.py +7 -5
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/pocket_detection.py +7 -5
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/pose_analysis_md.py +9 -4
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/protein_md.py +7 -6
- rowan_python-3.1.13/examples/protein_preparation.py +18 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/relative_binding_free_energy_perturbation.py +7 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/mkdocs.yml +1 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/pixi.lock +649 -610
- {rowan_python-3.1.11 → rowan_python-3.1.13}/pyproject.toml +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/__init__.py +1 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/protein.py +8 -5
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/types.py +1 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/utils.py +80 -14
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/__init__.py +7 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/analogue_docking.py +2 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/base.py +82 -21
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/batch_docking.py +4 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/bde.py +12 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/binding_affinity.py +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/covalent_inhibitor_scan.py +2 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/docking.py +2 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/msa.py +7 -9
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/pocket_detection.py +2 -1
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/pose_analysis_md.py +9 -13
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/protein_md.py +9 -13
- rowan_python-3.1.13/rowan/workflows/protein_preparation.py +130 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/relative_binding_free_energy_perturbation.py +9 -13
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/solubility.py +110 -28
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/tautomer_search.py +8 -7
- rowan_python-3.1.13/skills/computational-chemistry-and-biology/.claude-plugin/plugin.json +21 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/SKILL.md +10 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +3 -3
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/batch_docking.md +7 -5
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +2 -2
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/docking.md +8 -6
- rowan_python-3.1.13/skills/computational-chemistry-and-biology/reference/mcp_execution.md +24 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +8 -6
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +9 -4
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/protein_md.md +8 -6
- rowan_python-3.1.13/skills/computational-chemistry-and-biology/reference/protein_preparation.md +101 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +6 -3
- rowan_python-3.1.13/tests/test_plugin.py +30 -0
- rowan_python-3.1.13/tests/test_utils.py +121 -0
- rowan_python-3.1.13/tests/test_workflow_submission.py +118 -0
- rowan_python-3.1.11/examples/covalent_inhibitor_scan.py +0 -38
- rowan_python-3.1.11/rowan/test_utils.py +0 -54
- rowan_python-3.1.11/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -15
- rowan_python-3.1.11/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -79
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.agents/plugins/marketplace.json +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.codex-plugin/plugin.json +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.envrc +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.github/workflows/publish-skill.yml +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.github/workflows/test.yml +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.gitignore +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/AGENTS.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/CLAUDE.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/GEMINI.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/LICENSE +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/README.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/images/RowanLogoLarge.png +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/images/RowanSquareLogo.png +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/images/favicon.svg +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/conformer-search-settings.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/settings.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/docs/workflows/types.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/admet.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/basic_calculation.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/bde.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/conformers.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/conformers_screen.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/dcd_download.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/descriptors.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/electronic_properties.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/fukui_index.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/ion_mobility.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/irc.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/logp.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/macropka.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/nmr.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/optimization.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/pdb_download.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/periodic_dft.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/phenol_pka.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/pka.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/rbfe_resubmit.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/redox_potential.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/resubmit_with_perturbations.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/scan.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/spin_states.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/strain.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/tautomer.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/template.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/examples/webhook.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/api_keys.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/calculation.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/config.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/constants.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/folder.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/molecule.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/project.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/py.typed +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/user.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/basic_calculation.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/irc.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/logp.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/protein_cofolding.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/rbfe_graph.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/python_sdk.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.1.11 → rowan_python-3.1.13}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
"name": "computational-chemistry-and-biology",
|
|
11
11
|
"source": "./skills/computational-chemistry-and-biology",
|
|
12
12
|
"description": "Run computational chemistry and structural biology calculations through Rowan MCP tools or rowan-python",
|
|
13
|
-
"
|
|
14
|
-
"strict": false
|
|
13
|
+
"strict": true
|
|
15
14
|
}
|
|
16
15
|
]
|
|
17
16
|
}
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
- name: Build package
|
|
40
40
|
run: python -m build
|
|
41
41
|
- name: Publish package
|
|
42
|
-
uses: pypa/gh-action-pypi-publish@
|
|
42
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
43
43
|
with:
|
|
44
44
|
user: __token__
|
|
45
45
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: rowan-python
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.13
|
|
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
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
show_root_toc_entry: false
|
|
9
9
|
members_order: source
|
|
10
10
|
group_by_category: true
|
|
11
|
-
filters: ["!^
|
|
11
|
+
filters: ["!^_"]
|
|
12
12
|
|
|
13
13
|
::: rowan.utils
|
|
14
14
|
handler: python
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
show_root_toc_entry: false
|
|
19
19
|
members_order: source
|
|
20
20
|
group_by_category: true
|
|
21
|
-
filters: ["!^
|
|
21
|
+
filters: ["!^_"]
|
|
22
22
|
members:
|
|
23
23
|
- api_credentials
|
|
24
24
|
- get_api_key
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
show_root_toc_entry: false
|
|
9
9
|
members_order: source
|
|
10
10
|
group_by_category: true
|
|
11
|
-
filters: ["!^
|
|
11
|
+
filters: ["!^_"]
|
|
12
12
|
|
|
13
13
|
::: rowan.utils
|
|
14
14
|
handler: python
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
show_root_toc_entry: false
|
|
19
19
|
members_order: source
|
|
20
20
|
group_by_category: true
|
|
21
|
-
filters: ["!^
|
|
21
|
+
filters: ["!^_"]
|
|
22
22
|
members:
|
|
23
23
|
- smiles_to_stjames
|
|
24
24
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
show_root_toc_entry: false
|
|
9
9
|
members_order: source
|
|
10
10
|
group_by_category: true
|
|
11
|
-
filters: ["!^
|
|
11
|
+
filters: ["!^_"]
|
|
12
12
|
|
|
13
13
|
::: rowan.utils
|
|
14
14
|
handler: python
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
show_root_toc_entry: false
|
|
19
19
|
members_order: source
|
|
20
20
|
group_by_category: true
|
|
21
|
-
filters: ["!^
|
|
21
|
+
filters: ["!^_"]
|
|
22
22
|
members:
|
|
23
23
|
- get_project_uuid
|
|
@@ -22,7 +22,7 @@ protein = rowan.upload_protein("1IEP receptor", data_dir / "1iep_receptorH.pdb")
|
|
|
22
22
|
workflow = rowan.submit_analogue_docking_workflow(
|
|
23
23
|
analogues=list(citalopram_analogues.values()),
|
|
24
24
|
analogue_names=list(citalopram_analogues.keys()),
|
|
25
|
-
protein=protein,
|
|
25
|
+
protein=protein.uuid,
|
|
26
26
|
initial_molecule=bound_pose,
|
|
27
27
|
folder=folder,
|
|
28
28
|
)
|
|
@@ -12,15 +12,17 @@ ligands = [
|
|
|
12
12
|
"CCC(C)CN=C1NC=C2CCC(O)CC2=N1",
|
|
13
13
|
]
|
|
14
14
|
|
|
15
|
-
protein = rowan.create_protein_from_pdb_id(
|
|
16
|
-
|
|
15
|
+
protein = rowan.create_protein_from_pdb_id("1HCK", name="CDK2")
|
|
16
|
+
preparation_workflow = rowan.submit_protein_preparation_workflow(
|
|
17
|
+
protein=protein.uuid,
|
|
18
|
+
name="Prepare CDK2",
|
|
19
|
+
folder=folder,
|
|
17
20
|
)
|
|
18
|
-
|
|
19
|
-
protein.prepare()
|
|
21
|
+
prepared_protein_uuid = preparation_workflow.result().prepared_protein_uuid
|
|
20
22
|
|
|
21
23
|
workflow = rowan.submit_batch_docking_workflow(
|
|
22
24
|
ligands,
|
|
23
|
-
|
|
25
|
+
prepared_protein_uuid,
|
|
24
26
|
pocket=[[103.55, 100.59, 82.99], [27.76, 32.67, 48.79]],
|
|
25
27
|
executable="qvina2",
|
|
26
28
|
scoring_function="vina",
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
smileses = ["CCO", "CC(=O)O", "c1ccccc1"]
|
|
8
|
+
workflows = rowan.submit_solubility_workflow_group(
|
|
9
|
+
initial_smileses=smileses,
|
|
10
|
+
method="kingfisher",
|
|
11
|
+
solvents=["water"],
|
|
12
|
+
temperatures=[298.15],
|
|
13
|
+
names=["Ethanol", "Acetic acid", "Benzene"],
|
|
14
|
+
folder=folder,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
for workflow in workflows:
|
|
18
|
+
print(f"View workflow privately at: https://labs.rowansci.com/solubility/{workflow.uuid}")
|
|
19
|
+
|
|
20
|
+
results = [workflow.result() for workflow in workflows]
|
|
21
|
+
print(results)
|
|
@@ -12,7 +12,7 @@ all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
|
|
|
12
12
|
ligands = dict(list(all_ligands.items())[:3])
|
|
13
13
|
|
|
14
14
|
workflow = rowan.submit_binding_affinity_workflow(
|
|
15
|
-
protein=protein,
|
|
15
|
+
protein=protein.uuid,
|
|
16
16
|
ligand_structures=list(ligands.values()),
|
|
17
17
|
name="Binding Affinity — TYK2 ligands",
|
|
18
18
|
folder=folder,
|
|
@@ -13,17 +13,33 @@ protein = rowan.create_protein_from_pdb_id("2Q3Z")
|
|
|
13
13
|
# Chain A is TG2; chain X is a small covalently-bound peptide in the crystal, not
|
|
14
14
|
# part of the protein. `protein.chains` order isn't guaranteed, so select by name.
|
|
15
15
|
protein = protein.select_chains(["A"])
|
|
16
|
-
|
|
16
|
+
preparation_workflow = rowan.submit_protein_preparation_workflow(
|
|
17
|
+
protein=protein.uuid,
|
|
18
|
+
name="Prepare TG2",
|
|
19
|
+
folder=folder,
|
|
20
|
+
)
|
|
21
|
+
protein = preparation_workflow.result().get_prepared_protein()
|
|
17
22
|
|
|
18
23
|
# Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
|
|
19
24
|
center = [-1.079, -3.081, 18.122]
|
|
20
25
|
size = [22.22, 14.08, 21.74]
|
|
21
26
|
|
|
22
|
-
# 0-based, all-atom (including hydrogens) indices of the reacting atoms.
|
|
23
|
-
#
|
|
24
|
-
# the
|
|
27
|
+
# 0-based, all-atom (including hydrogens) indices of the reacting atoms. The ligand's
|
|
28
|
+
# acrylamide terminal =CH2 carbon is atom 0. Locate Cys277 SG from the prepared structure
|
|
29
|
+
# so the protein index remains correct if preparation changes atom ordering.
|
|
25
30
|
covalent_ligand_atom_index = 0
|
|
26
|
-
|
|
31
|
+
model = protein.data["models"][0]
|
|
32
|
+
cys277 = model["polymer"]["A"]["residues"]["A.277"]
|
|
33
|
+
cys277_sg_serial = next(
|
|
34
|
+
int(serial) for serial, atom in cys277["atoms"].items() if atom["name"] == "SG"
|
|
35
|
+
)
|
|
36
|
+
entities = [
|
|
37
|
+
residue for chain in model["polymer"].values() for residue in chain["residues"].values()
|
|
38
|
+
]
|
|
39
|
+
for section in ("non_polymer", "water", "branched"):
|
|
40
|
+
entities.extend(model.get(section, {}).values())
|
|
41
|
+
atom_serials = sorted(int(serial) for entity in entities for serial in entity.get("atoms", {}))
|
|
42
|
+
covalent_protein_atom_index = atom_serials.index(cys277_sg_serial)
|
|
27
43
|
gnina_settings = rowan.GninaSettings(
|
|
28
44
|
scoring_function="gnina_cnn",
|
|
29
45
|
covalent_ligand_atom_index=covalent_ligand_atom_index,
|
|
@@ -31,7 +47,7 @@ gnina_settings = rowan.GninaSettings(
|
|
|
31
47
|
)
|
|
32
48
|
|
|
33
49
|
workflow = rowan.submit_docking_workflow(
|
|
34
|
-
protein,
|
|
50
|
+
protein.uuid,
|
|
35
51
|
pocket=[center, size],
|
|
36
52
|
initial_molecule=tg2_inhibitor,
|
|
37
53
|
docking_settings=gnina_settings,
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
ligand_smiles = "CC(C)(C)C[C@@H](C#N)C(=O)N1CCC[C@H](C1)n2nc(c3ccc(Oc4ccccc4)cc3)c5c(N)ncnc25"
|
|
10
|
+
|
|
11
|
+
protein = rowan.create_protein_from_pdb_id("4YHF")
|
|
12
|
+
protein = protein.select_chains(["A"])
|
|
13
|
+
preparation_workflow = rowan.submit_protein_preparation_workflow(
|
|
14
|
+
protein=protein.uuid,
|
|
15
|
+
retain_non_polymer={"4C9": ligand_smiles},
|
|
16
|
+
name="Prepare BTK inhibitor complex",
|
|
17
|
+
folder=folder,
|
|
18
|
+
)
|
|
19
|
+
protein = preparation_workflow.result().get_prepared_protein()
|
|
20
|
+
|
|
21
|
+
# Locate Cys481 SG and the 4C9 ligand's C1 atom in the prepared structure, then convert
|
|
22
|
+
# their atom serials to zero-based PDB record indices.
|
|
23
|
+
model = protein.data["models"][0]
|
|
24
|
+
cys481 = model["polymer"]["A"]["residues"]["A.481"]
|
|
25
|
+
ligand_4c9 = next(residue for residue in model["non_polymer"].values() if residue["name"] == "4C9")
|
|
26
|
+
protein_atom_serial = next(
|
|
27
|
+
int(serial) for serial, atom in cys481["atoms"].items() if atom["name"] == "SG"
|
|
28
|
+
)
|
|
29
|
+
ligand_atom_serial = next(
|
|
30
|
+
int(serial) for serial, atom in ligand_4c9["atoms"].items() if atom["name"] == "C1"
|
|
31
|
+
)
|
|
32
|
+
entities = [
|
|
33
|
+
residue for chain in model["polymer"].values() for residue in chain["residues"].values()
|
|
34
|
+
]
|
|
35
|
+
for section in ("non_polymer", "water", "branched"):
|
|
36
|
+
entities.extend(model.get(section, {}).values())
|
|
37
|
+
atom_serials = sorted(int(serial) for entity in entities for serial in entity.get("atoms", {}))
|
|
38
|
+
protein_reactive_atom_index = atom_serials.index(protein_atom_serial)
|
|
39
|
+
ligand_reactive_atom_index = atom_serials.index(ligand_atom_serial)
|
|
40
|
+
|
|
41
|
+
workflow = rowan.submit_covalent_inhibitor_scan_workflow(
|
|
42
|
+
protein=protein.uuid,
|
|
43
|
+
protein_reactive_atom_index=protein_reactive_atom_index,
|
|
44
|
+
ligand_reactive_atom_index=ligand_reactive_atom_index,
|
|
45
|
+
ligand_smiles=ligand_smiles,
|
|
46
|
+
settings=rowan.CovalentInhibitorScanSettings(scan_num=4),
|
|
47
|
+
name="BTK covalent inhibitor scan (Cys481, 4YHF)",
|
|
48
|
+
folder=folder,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
print(
|
|
52
|
+
f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
result = workflow.result()
|
|
56
|
+
print(result)
|
|
57
|
+
|
|
58
|
+
for distance, energy in result.get_energies():
|
|
59
|
+
print(f" distance={distance:.3f} Å energy={energy}")
|