rowan-python 3.1.15__tar.gz → 3.1.16__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.15 → rowan_python-3.1.16}/.gitignore +5 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/AGENTS.md +9 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/PKG-INFO +18 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/README.md +17 -0
- rowan_python-3.1.16/docs/workflows/basic-calculation.md +35 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/settings.md +15 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/types.md +45 -9
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/docking.py +3 -3
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/electronic_properties.py +3 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/induced_fit_docking.py +5 -5
- rowan_python-3.1.15/examples/pdb_download.py → rowan_python-3.1.16/examples/protein_file_download.py +5 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/pixi.lock +275 -275
- {rowan_python-3.1.15 → rowan_python-3.1.16}/pyproject.toml +1 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/__init__.py +2 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/protein.py +86 -21
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/_molecular_dynamics.py +35 -29
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/binding_affinity.py +7 -6
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/electronic_properties.py +14 -13
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +2 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +3 -3
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/protein_md.md +3 -3
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_binding_affinity.py +2 -1
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_md_workflow_updates.py +67 -9
- rowan_python-3.1.16/tests/test_protein.py +66 -0
- rowan_python-3.1.15/docs/workflows/basic-calculation.md +0 -11
- rowan_python-3.1.15/tests/test_protein.py +0 -39
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.agents/plugins/marketplace.json +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.claude-plugin/marketplace.json +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.codex-plugin/plugin.json +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.envrc +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.github/workflows/publish-skill.yml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.github/workflows/test.yml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/CLAUDE.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/GEMINI.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/LICENSE +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/api-keys.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/calculation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/folder.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/molecule.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/project.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/protein.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/user.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/webhooks.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/api/workflow.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/images/RowanLogoLarge.png +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/images/RowanSquareLogo.png +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/images/favicon.svg +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/index.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/admet.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/analogue-docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/batch-docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/binding-affinity.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/bond-dissociation-energy.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/conformer-search-settings.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/conformer-search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/covalent-inhibitor-scan.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/descriptors.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/double-ended-ts-search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/electronic-properties.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/fukui.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/interaction-energy-decomposition.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/ion-mobility.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/irc.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/logp.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/macropka.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/membrane-permeability.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/msa.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/multistage-optimization.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/nmr.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/pka.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/pocket-detection.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/pose-analysis-md.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/protein-binder-design.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/protein-cofolding.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/protein-md.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/protein-preparation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/rbfe-graph.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/redox-potential.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/relative-binding-free-energy-perturbation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/scan.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/solubility.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/solvent-dependent-conformers.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/spin-states.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/strain.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/docs/workflows/tautomer-search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/admet.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/analogue_docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/basic_calculation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/batch_docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/batch_solubility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/bde.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/binding_affinity.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/conformers.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/conformers_screen.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/covalent_docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/covalent_inhibitor_scan.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/dcd_download.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/descriptors.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/docking_screen.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/fukui_index.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/ion_mobility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/irc.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/logp.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/macropka.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/nmr.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/optimization.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/periodic_dft.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/phenol_pka.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/pka.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/pocket_detection.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_cofolding_modified_inputs.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_md.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/protein_preparation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/rbfe_resubmit.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/redox_potential.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/resubmit_with_perturbations.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/scan.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/spin_states.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/strain.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/tautomer.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/template.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/temporary_workflow_sharing.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/examples/webhook.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/mkdocs.yml +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/api_keys.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/calculation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/config.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/constants.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/folder.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/molecule.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/project.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/py.typed +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/types.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/user.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/utils.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/__init__.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/analogue_docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/base.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/basic_calculation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/covalent_inhibitor_scan.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/docking.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/double_ended_ts_search.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/irc.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/logp.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/pose_analysis_md.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/protein_cofolding.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/protein_md.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/protein_preparation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/rbfe_graph.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/rowan/workflows/tautomer_search.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/.claude-plugin/plugin.json +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/SKILL.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/docking.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/protein_preparation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/python_sdk.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_cofolding_workflow_updates.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_docking_workflow.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_docking_workflow_updates.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_macropka_nmr.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_mango_forcefields.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_plugin.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_solvent_dependent_conformers.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_tautomer_search.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_utils.py +0 -0
- {rowan_python-3.1.15 → rowan_python-3.1.16}/tests/test_workflow_submission.py +0 -0
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Ignore environment file with ROWAN_API_KEY
|
|
2
2
|
.env
|
|
3
|
+
# Variant env files (.env.test, .env.single-tenant, ...); .envrc is tracked for direnv
|
|
4
|
+
.env.*
|
|
5
|
+
|
|
6
|
+
# macOS
|
|
7
|
+
.DS_Store
|
|
3
8
|
|
|
4
9
|
# Created by https://www.toptal.com/developers/gitignore/api/python
|
|
5
10
|
# Edit at https://www.toptal.com/developers/gitignore?templates=python
|
|
@@ -46,6 +46,12 @@ pixi run python examples/basic_calculation.py
|
|
|
46
46
|
|
|
47
47
|
## Code conventions
|
|
48
48
|
|
|
49
|
+
### Documentation updates
|
|
50
|
+
|
|
51
|
+
- Treat requests to check or update docs as keeping existing descriptions, examples, docstrings, and skill references accurate.
|
|
52
|
+
- Make corrections where the relevant behavior is already documented. Don't add feature announcements, introductory callouts, or new sections just because a feature changed.
|
|
53
|
+
- If a document doesn't discuss the affected behavior, usually leave it alone. Preserve its existing scope and emphasis unless the user asks for expanded documentation.
|
|
54
|
+
|
|
49
55
|
### Docstrings
|
|
50
56
|
|
|
51
57
|
Format: reStructuredText-style. No types in docstrings, no leading articles.
|
|
@@ -100,7 +106,9 @@ Via ruff:
|
|
|
100
106
|
|
|
101
107
|
## Git authorization policy
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
- Prepare changes on a local feature branch. Local commits are allowed as part of authorized development work.
|
|
110
|
+
- The user handles pushing and opening PRs. Do not push branches, create PRs, or change remote branches unless the user explicitly requests that specific remote action.
|
|
111
|
+
- A request to get changes ready for a PR means prepare the local branch, not publish it or open a PR.
|
|
104
112
|
|
|
105
113
|
**Never add yourself as a commit author or co-author.** Do not include `Co-Authored-By:`, `Author:`, or any similar trailer that attributes the commit to an AI model or tool. Commits are attributed solely to the human developer.
|
|
106
114
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rowan-python
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.16
|
|
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
|
|
@@ -48,6 +48,23 @@ codex plugin marketplace add rowansci/rowan-python --ref master
|
|
|
48
48
|
codex plugin add computational-chemistry-and-biology@rowan
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
### Rowan MCP server (optional)
|
|
52
|
+
|
|
53
|
+
The skill also works with the hosted Rowan MCP server, which provides Rowan tools directly to the
|
|
54
|
+
agent. Add it once per client:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Claude Code
|
|
58
|
+
claude mcp add --transport http rowan https://mcp.rowansci.com/
|
|
59
|
+
|
|
60
|
+
# Codex
|
|
61
|
+
codex mcp add rowan --url https://mcp.rowansci.com/
|
|
62
|
+
codex mcp login rowan
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Both clients prompt for OAuth sign-in on first use. Without the server, the skill falls back to the
|
|
66
|
+
Rowan Python SDK, which authenticates with `ROWAN_API_KEY` instead.
|
|
67
|
+
|
|
51
68
|
Start a new Claude Code or Codex session after installation. For manual installation, download the
|
|
52
69
|
[latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
|
|
53
70
|
and extract it into your agent's skills directory.
|
|
@@ -32,6 +32,23 @@ codex plugin marketplace add rowansci/rowan-python --ref master
|
|
|
32
32
|
codex plugin add computational-chemistry-and-biology@rowan
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
### Rowan MCP server (optional)
|
|
36
|
+
|
|
37
|
+
The skill also works with the hosted Rowan MCP server, which provides Rowan tools directly to the
|
|
38
|
+
agent. Add it once per client:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Claude Code
|
|
42
|
+
claude mcp add --transport http rowan https://mcp.rowansci.com/
|
|
43
|
+
|
|
44
|
+
# Codex
|
|
45
|
+
codex mcp add rowan --url https://mcp.rowansci.com/
|
|
46
|
+
codex mcp login rowan
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Both clients prompt for OAuth sign-in on first use. Without the server, the skill falls back to the
|
|
50
|
+
Rowan Python SDK, which authenticates with `ROWAN_API_KEY` instead.
|
|
51
|
+
|
|
35
52
|
Start a new Claude Code or Codex session after installation. For manual installation, download the
|
|
36
53
|
[latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
|
|
37
54
|
and extract it into your agent's skills directory.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Basic Calculation
|
|
2
|
+
|
|
3
|
+
## Configuration
|
|
4
|
+
|
|
5
|
+
Use the exported enums instead of raw strings when setting the method and engine:
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
import rowan
|
|
9
|
+
|
|
10
|
+
molecule = rowan.Molecule.from_smiles("CCO")
|
|
11
|
+
workflow = rowan.submit_basic_calculation_workflow(
|
|
12
|
+
initial_molecule=molecule,
|
|
13
|
+
tasks=["optimize"],
|
|
14
|
+
method=rowan.Method.GFN2_XTB,
|
|
15
|
+
engine=rowan.Engine.XTB,
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Pass an [`OptimizationSettings`](settings.md#stjames.opt_settings.OptimizationSettings) object or
|
|
20
|
+
an equivalent dictionary to `opt_settings`. `optimize_cell` defaults to `False`; set it to `True`
|
|
21
|
+
only when optimizing a periodic cell.
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
opt_settings = rowan.OptimizationSettings(max_steps=200, optimize_cell=False)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
::: rowan.workflows.basic_calculation
|
|
28
|
+
handler: python
|
|
29
|
+
options:
|
|
30
|
+
show_source: false
|
|
31
|
+
show_root_heading: false
|
|
32
|
+
show_root_toc_entry: false
|
|
33
|
+
members_order: source
|
|
34
|
+
group_by_category: true
|
|
35
|
+
filters: ["!^_"]
|
|
@@ -12,6 +12,21 @@
|
|
|
12
12
|
members:
|
|
13
13
|
- Settings
|
|
14
14
|
|
|
15
|
+
## Basis sets
|
|
16
|
+
|
|
17
|
+
Pass a basis set name as a string for ordinary calculations. Use `rowan.BasisSet` when configuring
|
|
18
|
+
atom- or element-specific overrides.
|
|
19
|
+
|
|
20
|
+
::: stjames.basis_set
|
|
21
|
+
handler: python
|
|
22
|
+
options:
|
|
23
|
+
show_source: false
|
|
24
|
+
show_root_heading: false
|
|
25
|
+
show_root_toc_entry: false
|
|
26
|
+
members_order: source
|
|
27
|
+
group_by_category: true
|
|
28
|
+
filters: ["!^_"]
|
|
29
|
+
|
|
15
30
|
::: stjames.opt_settings
|
|
16
31
|
handler: python
|
|
17
32
|
options:
|
|
@@ -3,54 +3,90 @@
|
|
|
3
3
|
Value types shared across many workflows — the vocabulary you use for `preset`, `method`, and
|
|
4
4
|
structural inputs regardless of which workflow you're submitting.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Legacy enum members retained for parsing historical workflows are omitted below.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Enum members and their accepted string values are listed below. Import these types from `rowan`,
|
|
9
|
+
not `stjames`.
|
|
10
|
+
|
|
11
|
+
## Methods
|
|
12
|
+
|
|
13
|
+
::: stjames.method.Method
|
|
9
14
|
handler: python
|
|
10
15
|
options:
|
|
11
16
|
show_source: false
|
|
17
|
+
show_bases: false
|
|
12
18
|
show_root_heading: false
|
|
13
19
|
show_root_toc_entry: false
|
|
20
|
+
show_if_no_docstring: true
|
|
21
|
+
separate_signature: false
|
|
14
22
|
members_order: source
|
|
15
23
|
group_by_category: true
|
|
16
|
-
filters:
|
|
24
|
+
filters:
|
|
25
|
+
- "!^_"
|
|
26
|
+
- "!^default_engine$"
|
|
27
|
+
- "!^(MACE_MP_0|MACE_MP_0B2_L|EGRET_1|EGRET_1E|EGRET_1T)$"
|
|
28
|
+
- "!^SMIRNOFF_2_(0_0|2_1)_AMBER_AM1BCC$"
|
|
17
29
|
|
|
18
|
-
|
|
30
|
+
## Engines
|
|
31
|
+
|
|
32
|
+
::: stjames.engine.Engine
|
|
19
33
|
handler: python
|
|
20
34
|
options:
|
|
21
35
|
show_source: false
|
|
36
|
+
show_bases: false
|
|
22
37
|
show_root_heading: false
|
|
23
38
|
show_root_toc_entry: false
|
|
39
|
+
show_if_no_docstring: true
|
|
40
|
+
separate_signature: false
|
|
24
41
|
members_order: source
|
|
25
42
|
group_by_category: true
|
|
26
|
-
filters:
|
|
43
|
+
filters:
|
|
44
|
+
- "!^_"
|
|
45
|
+
- "!^(EGRET|MACE|TERACHEM)$"
|
|
27
46
|
|
|
28
|
-
|
|
47
|
+
## Tasks
|
|
48
|
+
|
|
49
|
+
::: stjames.task.Task
|
|
29
50
|
handler: python
|
|
30
51
|
options:
|
|
31
52
|
show_source: false
|
|
53
|
+
show_bases: false
|
|
32
54
|
show_root_heading: false
|
|
33
55
|
show_root_toc_entry: false
|
|
56
|
+
show_if_no_docstring: true
|
|
57
|
+
separate_signature: false
|
|
34
58
|
members_order: source
|
|
35
59
|
group_by_category: true
|
|
36
|
-
filters:
|
|
60
|
+
filters:
|
|
61
|
+
- "!^_"
|
|
62
|
+
- "!^STRESS$"
|
|
37
63
|
|
|
38
|
-
|
|
64
|
+
## Corrections
|
|
65
|
+
|
|
66
|
+
::: stjames.correction.Correction
|
|
39
67
|
handler: python
|
|
40
68
|
options:
|
|
41
69
|
show_source: false
|
|
70
|
+
show_bases: false
|
|
42
71
|
show_root_heading: false
|
|
43
72
|
show_root_toc_entry: false
|
|
73
|
+
show_if_no_docstring: true
|
|
74
|
+
separate_signature: false
|
|
44
75
|
members_order: source
|
|
45
76
|
group_by_category: true
|
|
46
77
|
filters: ["!^_"]
|
|
47
78
|
|
|
48
|
-
|
|
79
|
+
## Modes
|
|
80
|
+
|
|
81
|
+
::: stjames.mode.Mode
|
|
49
82
|
handler: python
|
|
50
83
|
options:
|
|
51
84
|
show_source: false
|
|
85
|
+
show_bases: false
|
|
52
86
|
show_root_heading: false
|
|
53
87
|
show_root_toc_entry: false
|
|
88
|
+
show_if_no_docstring: true
|
|
89
|
+
separate_signature: false
|
|
54
90
|
members_order: source
|
|
55
91
|
group_by_category: true
|
|
56
92
|
filters: ["!^_"]
|
|
@@ -37,7 +37,7 @@ print(result)
|
|
|
37
37
|
for i, score in enumerate(result.scores):
|
|
38
38
|
print(f" Pose {i}: score={score.score:.3f} posebusters_valid={score.posebusters_valid}")
|
|
39
39
|
|
|
40
|
-
# Download the top-scoring protein–ligand complex as
|
|
40
|
+
# Download the top-scoring protein–ligand complex as mmCIF
|
|
41
41
|
complex_protein = result.get_complex(0)
|
|
42
|
-
complex_protein.
|
|
43
|
-
print("Saved dasatinib_2GQG_complex.
|
|
42
|
+
complex_protein.download_structure(name="dasatinib_2GQG_complex")
|
|
43
|
+
print("Saved dasatinib_2GQG_complex.cif")
|
|
@@ -17,7 +17,9 @@ folder = rowan.get_folder("examples")
|
|
|
17
17
|
|
|
18
18
|
workflow = rowan.submit_electronic_properties_workflow(
|
|
19
19
|
initial_molecule=rowan.Molecule.from_smiles("C=O"), # formaldehyde
|
|
20
|
-
method="
|
|
20
|
+
method="r2scan",
|
|
21
|
+
basis_set="def2-svp",
|
|
22
|
+
engine="gpu4pyscf",
|
|
21
23
|
compute_density_cube=True,
|
|
22
24
|
compute_electrostatic_potential_cube=True,
|
|
23
25
|
compute_num_occupied_orbitals=3, # HOMO, HOMO-1, HOMO-2
|
|
@@ -50,12 +50,12 @@ for i, score in enumerate(result.scores):
|
|
|
50
50
|
f"score={score.score:.3f} receptor_strain={score.receptor_strain}"
|
|
51
51
|
)
|
|
52
52
|
|
|
53
|
-
# Download the top-scoring complex and best-ranked relaxed receptor as
|
|
53
|
+
# Download the top-scoring complex and best-ranked relaxed receptor as mmCIF files
|
|
54
54
|
complex_protein = result.get_complex(0)
|
|
55
|
-
complex_protein.
|
|
56
|
-
print("Saved dasatinib_2GQG_induced_complex.
|
|
55
|
+
complex_protein.download_structure(name="dasatinib_2GQG_induced_complex")
|
|
56
|
+
print("Saved dasatinib_2GQG_induced_complex.cif")
|
|
57
57
|
|
|
58
58
|
induced_receptors = result.get_induced_receptors()
|
|
59
59
|
if induced_receptors:
|
|
60
|
-
induced_receptors[0].
|
|
61
|
-
print("Saved dasatinib_2GQG_induced_receptor.
|
|
60
|
+
induced_receptors[0].download_structure(name="dasatinib_2GQG_induced_receptor")
|
|
61
|
+
print("Saved dasatinib_2GQG_induced_receptor.cif")
|
rowan_python-3.1.15/examples/pdb_download.py → rowan_python-3.1.16/examples/protein_file_download.py
RENAMED
|
@@ -8,4 +8,8 @@ import rowan
|
|
|
8
8
|
proteins = rowan.list_proteins()
|
|
9
9
|
for protein in proteins:
|
|
10
10
|
print(protein.name)
|
|
11
|
-
protein.
|
|
11
|
+
protein.download_structure(
|
|
12
|
+
name=protein.name,
|
|
13
|
+
path=Path("protein_files"),
|
|
14
|
+
file_format="mmcif", # Default; use "pdb" for PDB files
|
|
15
|
+
)
|