rowan-python 3.2.1__tar.gz → 3.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rowan_python-3.2.1 → rowan_python-3.2.2}/PKG-INFO +2 -2
- {rowan_python-3.2.1 → rowan_python-3.2.2}/pyproject.toml +2 -2
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/__init__.py +1 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/project.py +8 -1
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/binding_affinity.py +7 -1
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/protein_md.py +3 -3
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +11 -1
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/protein_md.md +1 -1
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_binding_affinity.py +33 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_md_workflow_updates.py +1 -0
- rowan_python-3.2.2/tests/test_project.py +35 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/uv.lock +5 -5
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.claude-plugin/marketplace.json +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.codex-plugin/plugin.json +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.editorconfig +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.envrc +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.github/workflows/publish-skill.yml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.github/workflows/test.yml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.gitignore +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.python-version +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/.rumdl.toml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/LICENSE +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/README.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/api-keys.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/calculation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/folder.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/molecule.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/project.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/protein.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/user.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/webhooks.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/api/workflow.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/images/RowanLogoLarge.png +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/images/RowanSquareLogo.png +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/images/favicon.svg +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/index.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/admet.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/analogue-docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/basic-calculation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/batch-docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/binding-affinity.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/bond-dissociation-energy.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/conformer-search-settings.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/conformer-search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/covalent-inhibitor-scan.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/descriptors.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/double-ended-ts-search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/electronic-properties.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/fukui.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/interaction-energy-decomposition.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/ion-mobility.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/irc.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/logp.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/macropka.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/membrane-permeability.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/msa.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/multistage-optimization.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/nmr.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/pka.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/pocket-detection.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/pose-analysis-md.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/protein-binder-design.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/protein-cofolding.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/protein-md.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/protein-preparation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/rbfe-graph.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/redox-potential.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/relative-binding-free-energy-perturbation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/scan.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/settings.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/solubility.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/solvent-dependent-conformers.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/spin-states.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/strain.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/tautomer-search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/types.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/admet.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/analogue_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/basic_calculation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/batch_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/batch_solubility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/bde.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/binding_affinity.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/conformers.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/conformers_screen.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/covalent_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/covalent_inhibitor_scan.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/Al_FCC.xyz +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/ibuprofen_conformers.sdf +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/dcd_download.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/descriptors.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/docking_screen.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/electronic_properties.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/fukui_index.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/induced_fit_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/ion_mobility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/irc.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/logp.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/macropka.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/nmr.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/optimization.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/periodic_dft.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/phenol_pka.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/pka.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/pocket_detection.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/project_scoped_api_key.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_cofolding_modified_inputs.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_cofolding_with_constraints.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_cofolding_with_templates.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_file_download.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_md.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/protein_preparation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/rbfe_resubmit.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/redox_potential.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/resubmit_with_perturbations.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/scan.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/spin_states.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/strain.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/tautomer.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/template.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/temporary_workflow_sharing.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/examples/webhook.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/mkdocs.yml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/prek.toml +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/api_keys.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/calculation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/config.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/constants.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/folder.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/molecule.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/protein.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/py.typed +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/types.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/user.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/utils.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/__init__.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/_molecular_dynamics.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/analogue_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/base.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/basic_calculation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/covalent_inhibitor_scan.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/descriptors.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/docking.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/double_ended_ts_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/irc.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/logp.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/pka.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/pocket_detection.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/pose_analysis_md.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/protein_cofolding.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/protein_preparation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/rbfe_graph.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/spin_states.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/strain.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/rowan/workflows/tautomer_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/.claude-plugin/plugin.json +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/SKILL.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/docking.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/protein_preparation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/python_sdk.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_cofolding_workflow_updates.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_conformer_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_docking_workflow.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_docking_workflow_updates.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_macropka_nmr.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_mango_forcefields.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_plugin.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_protein.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_rbfe_trajectory_download.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_solvent_dependent_conformers.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_tautomer_search.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_utils.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_workflow_results.py +0 -0
- {rowan_python-3.2.1 → rowan_python-3.2.2}/tests/test_workflow_submission.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rowan-python
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: Rowan Python Library
|
|
5
5
|
Project-URL: Homepage, https://github.com/rowansci/rowan-client
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
|
|
@@ -12,7 +12,7 @@ Requires-Dist: httpx
|
|
|
12
12
|
Requires-Dist: nest-asyncio
|
|
13
13
|
Requires-Dist: rdkit
|
|
14
14
|
Requires-Dist: setuptools
|
|
15
|
-
Requires-Dist: stjames>=0.0.
|
|
15
|
+
Requires-Dist: stjames>=0.0.281
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
|
|
18
18
|
# Rowan Python Library
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "rowan-python"
|
|
3
|
-
version = "3.2.
|
|
3
|
+
version = "3.2.2"
|
|
4
4
|
description = "Rowan Python Library"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -12,7 +12,7 @@ authors = [
|
|
|
12
12
|
]
|
|
13
13
|
dependencies = [
|
|
14
14
|
"httpx",
|
|
15
|
-
"stjames>=0.0.
|
|
15
|
+
"stjames>=0.0.281",
|
|
16
16
|
"setuptools",
|
|
17
17
|
"rdkit",
|
|
18
18
|
"nest-asyncio",
|
|
@@ -67,6 +67,7 @@ from stjames.engine_compatibility import (
|
|
|
67
67
|
METHOD_ENGINES,
|
|
68
68
|
get_supported_corrections,
|
|
69
69
|
)
|
|
70
|
+
from stjames.pdb import ResidueRef
|
|
70
71
|
from stjames.optimization.band_method import NEBSettings
|
|
71
72
|
from stjames.optimization.interpolation import Interpolation
|
|
72
73
|
from stjames.optimization.string_method import FSMSettings, StringMethodSettings
|
|
@@ -197,8 +197,15 @@ def default_project() -> Project:
|
|
|
197
197
|
|
|
198
198
|
Raises:
|
|
199
199
|
httpx.HTTPStatusError: API request fails
|
|
200
|
+
ValueError: user has no default project in the API key's organization
|
|
200
201
|
"""
|
|
201
202
|
with api_client() as client:
|
|
202
203
|
response = client.get("/user/me/default_project")
|
|
203
204
|
response.raise_for_status()
|
|
204
|
-
|
|
205
|
+
project = response.json()
|
|
206
|
+
if project is None:
|
|
207
|
+
raise ValueError(
|
|
208
|
+
"You have no default project in this organization. "
|
|
209
|
+
"Set a default project, or pass a folder or project."
|
|
210
|
+
)
|
|
211
|
+
return Project(**project)
|
|
@@ -153,9 +153,15 @@ def submit_binding_affinity_workflow(
|
|
|
153
153
|
binding_affinity_settings=binding_affinity_settings or SinglePointEnergySettings(),
|
|
154
154
|
)
|
|
155
155
|
|
|
156
|
+
workflow_data = workflow.model_dump(serialize_as_any=True, mode="json")
|
|
157
|
+
if isinstance(workflow.binding_affinity_settings, SinglePointEnergySettings):
|
|
158
|
+
workflow_data["binding_affinity_settings"]["truncation_radius"] = (
|
|
159
|
+
workflow.binding_affinity_settings.truncation_radius
|
|
160
|
+
)
|
|
161
|
+
|
|
156
162
|
data = {
|
|
157
163
|
"workflow_type": "binding_affinity",
|
|
158
|
-
"workflow_data":
|
|
164
|
+
"workflow_data": workflow_data,
|
|
159
165
|
"name": name,
|
|
160
166
|
"folder_uuid": folder_uuid,
|
|
161
167
|
"max_credits": max_credits,
|
|
@@ -149,7 +149,7 @@ def submit_protein_md_workflow(
|
|
|
149
149
|
binder: Binder | None = None,
|
|
150
150
|
protein_restraint_cutoff: float | None = None,
|
|
151
151
|
protein_restraint_constant: float = 100,
|
|
152
|
-
analysis_interval_ps: float | None =
|
|
152
|
+
analysis_interval_ps: float | None = 100,
|
|
153
153
|
clustering: KMeansClusteringSettings | GreedyClusteringSettings | None = None,
|
|
154
154
|
validate_forcefield: bool = True,
|
|
155
155
|
name: str = "Protein MD Workflow",
|
|
@@ -194,8 +194,8 @@ def submit_protein_md_workflow(
|
|
|
194
194
|
protein_restraint_cutoff: cutoff distance from the binder past which Cα atoms are
|
|
195
195
|
harmonically restrained, in Å; None disables restraints
|
|
196
196
|
protein_restraint_constant: force constant for Cα backbone restraints, in kcal/mol/Ų
|
|
197
|
-
analysis_interval_ps: interval at which to compute per-frame SASA and polar SASA
|
|
198
|
-
None disables those analyses
|
|
197
|
+
analysis_interval_ps: interval at which to compute per-frame SASA and polar SASA
|
|
198
|
+
(default 100), in ps. None disables those analyses
|
|
199
199
|
clustering: how to cluster trajectory frames. None disables clustering; pass a
|
|
200
200
|
KMeansClusteringSettings (num_clusters) or GreedyClusteringSettings (cutoff_angstrom)
|
|
201
201
|
validate_forcefield: validate the protein forcefield
|
|
@@ -57,9 +57,19 @@ for name, score in zip(ligands.keys(), result.scores):
|
|
|
57
57
|
|
|
58
58
|
- `rowan.SinglePointEnergySettings` (default):
|
|
59
59
|
- `multistage_opt_settings` (default PM6-D3H4X/COSMO optimization + PM6-D3H4X/COSMO2 single-point in water): a `rowan.MultiStageOptSettings` controlling ligand geometry optimization and energy evaluation.
|
|
60
|
-
- `truncation_radius` (default `6.0` Å): protein residues
|
|
60
|
+
- `truncation_radius` (default `6.0` Å): selects whole protein residues with any atom within this distance of any submitted ligand atom.
|
|
61
|
+
- `truncation_residues`: nonempty list of `rowan.ResidueRef` objects identifying polymer residues by chain and residue keys in the submitted protein. Requires `truncation_radius=None`; a radius and explicit residues cannot be supplied together.
|
|
61
62
|
- `rowan.GninaAffinitySettings`, `rowan.AEVPLIGAffinitySettings`, `rowan.NessoAffinitySettings`: no tunable parameters.
|
|
62
63
|
|
|
64
|
+
For an explicit pocket, pass settings like these, using keys from your protein:
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
rowan.SinglePointEnergySettings(
|
|
68
|
+
truncation_radius=None,
|
|
69
|
+
truncation_residues=[rowan.ResidueRef("polymer", "A", "A.182")],
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
63
73
|
```python
|
|
64
74
|
# Replace the path, residue name, and SMILES with those of your holo complex.
|
|
65
75
|
holo_protein = rowan.upload_protein("Holo complex", "PATH_TO_HOLO_PDB")
|
|
@@ -61,7 +61,7 @@ result.download_trajectories([0], path=".") # save DCD trajectory files
|
|
|
61
61
|
- `binder` (default `None`): a `rowan.Binder` specifying the binder within the complex — protein/peptide chains (`chain_ids`), small molecules (`small_molecule_residues`, identified by residue-name string or 0-based non-polymer residue index), or both. Enables per-frame MM/GBSA and binder RMSD analyses (see result fields).
|
|
62
62
|
- `protein_restraint_cutoff` (default `None`): distance from the binder past which Cα atoms are harmonically restrained, in angstrom; `None` disables restraints. Useful for keeping the binding site mobile while stabilizing the rest of the protein.
|
|
63
63
|
- `protein_restraint_constant` (default `100`): force constant for the Cα backbone restraints, in kcal/mol/Ų.
|
|
64
|
-
- `analysis_interval_ps` (default `
|
|
64
|
+
- `analysis_interval_ps` (default `100`): interval at which to compute per-frame SASA and polar SASA, in ps. `None` disables those analyses.
|
|
65
65
|
- `clustering` (default `None`): cluster the trajectory frames. `None` disables it; pass `rowan.KMeansClusteringSettings(num_clusters=10)` or `rowan.GreedyClusteringSettings(cutoff_angstrom=2.0)`.
|
|
66
66
|
- `validate_forcefield` (default `True`): validate the protein forcefield before submitting; raises early if the protein cannot be parameterized or has clashing residues. When a `binder` is set, its small molecules are excluded from validation, whether keyed by residue name or by non-polymer index, since they are parameterized from their SMILES. Cofactors, metals, and glycans outside the binder are still validated — set `False` to skip the pre-check entirely.
|
|
67
67
|
|
|
@@ -124,3 +124,36 @@ def test_binding_affinity_results_preserve_failed_inputs() -> None:
|
|
|
124
124
|
)
|
|
125
125
|
|
|
126
126
|
assert result.scores == [BindingAffinityScore(binding_affinity=-6.5), None]
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@pytest.mark.parametrize(
|
|
130
|
+
"settings",
|
|
131
|
+
[
|
|
132
|
+
pytest.param(rowan.SinglePointEnergySettings(), id="default-radius"),
|
|
133
|
+
pytest.param(rowan.SinglePointEnergySettings(truncation_radius=8.0), id="custom-radius"),
|
|
134
|
+
pytest.param(
|
|
135
|
+
rowan.SinglePointEnergySettings(
|
|
136
|
+
truncation_radius=None,
|
|
137
|
+
truncation_residues=[rowan.ResidueRef("polymer", "A", "A.182")],
|
|
138
|
+
),
|
|
139
|
+
id="explicit-residues",
|
|
140
|
+
),
|
|
141
|
+
],
|
|
142
|
+
)
|
|
143
|
+
def test_submit_binding_affinity_pocket_roundtrip(
|
|
144
|
+
monkeypatch: pytest.MonkeyPatch, settings: rowan.SinglePointEnergySettings
|
|
145
|
+
) -> None:
|
|
146
|
+
"""Preserve radius and explicit residue selections through submission JSON."""
|
|
147
|
+
client = _mock_client(monkeypatch)
|
|
148
|
+
rowan.submit_binding_affinity_workflow(
|
|
149
|
+
protein="protein-uuid",
|
|
150
|
+
ligand_residue_name="LIG",
|
|
151
|
+
ligand_smiles=["CCO"],
|
|
152
|
+
binding_affinity_settings=settings,
|
|
153
|
+
)
|
|
154
|
+
payload = client.post.call_args.kwargs["json"]["workflow_data"]
|
|
155
|
+
assert payload["binding_affinity_settings"]["truncation_radius"] == settings.truncation_radius
|
|
156
|
+
restored = stjames.BindingAffinityWorkflow.model_validate(payload).binding_affinity_settings
|
|
157
|
+
assert restored.model_dump(mode="json", exclude_none=False) == settings.model_dump(
|
|
158
|
+
mode="json", exclude_none=False
|
|
159
|
+
)
|
|
@@ -108,6 +108,7 @@ def test_protein_md_uses_new_defaults_and_forcefields(monkeypatch: pytest.Monkey
|
|
|
108
108
|
assert payload["timestep_fs"] == 4
|
|
109
109
|
assert payload["hydrogen_mass"] == 3
|
|
110
110
|
assert payload["water_buffer"] == 8
|
|
111
|
+
assert payload["analysis_interval_ps"] == 100
|
|
111
112
|
|
|
112
113
|
|
|
113
114
|
def test_protein_md_exposes_binder_and_representative_structure_results(
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Tests for project retrieval."""
|
|
2
|
+
|
|
3
|
+
from collections.abc import Iterator
|
|
4
|
+
from contextlib import contextmanager
|
|
5
|
+
from unittest.mock import MagicMock
|
|
6
|
+
|
|
7
|
+
import pytest
|
|
8
|
+
|
|
9
|
+
from rowan import project as project_module
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _mock_client(monkeypatch: pytest.MonkeyPatch, payload: dict[str, str] | None) -> None:
|
|
13
|
+
client = MagicMock()
|
|
14
|
+
client.get.return_value.json.return_value = payload
|
|
15
|
+
|
|
16
|
+
@contextmanager
|
|
17
|
+
def mock_api_client() -> Iterator[MagicMock]:
|
|
18
|
+
yield client
|
|
19
|
+
|
|
20
|
+
monkeypatch.setattr(project_module, "api_client", mock_api_client)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def test_default_project_returns_the_project(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
24
|
+
"""Return the default project the API reports."""
|
|
25
|
+
_mock_client(monkeypatch, {"uuid": "project-uuid", "name": "Default"})
|
|
26
|
+
|
|
27
|
+
assert project_module.default_project().uuid == "project-uuid"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_default_project_without_one_raises_a_clear_error(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
31
|
+
"""Explain a missing default project instead of failing to build one from null."""
|
|
32
|
+
_mock_client(monkeypatch, None)
|
|
33
|
+
|
|
34
|
+
with pytest.raises(ValueError, match="no default project"):
|
|
35
|
+
project_module.default_project()
|
|
@@ -1148,7 +1148,7 @@ wheels = [
|
|
|
1148
1148
|
|
|
1149
1149
|
[[package]]
|
|
1150
1150
|
name = "rowan-python"
|
|
1151
|
-
version = "3.2.
|
|
1151
|
+
version = "3.2.2"
|
|
1152
1152
|
source = { editable = "." }
|
|
1153
1153
|
dependencies = [
|
|
1154
1154
|
{ name = "httpx" },
|
|
@@ -1181,7 +1181,7 @@ requires-dist = [
|
|
|
1181
1181
|
{ name = "nest-asyncio" },
|
|
1182
1182
|
{ name = "rdkit" },
|
|
1183
1183
|
{ name = "setuptools" },
|
|
1184
|
-
{ name = "stjames", specifier = ">=0.0.
|
|
1184
|
+
{ name = "stjames", specifier = ">=0.0.281" },
|
|
1185
1185
|
]
|
|
1186
1186
|
|
|
1187
1187
|
[package.metadata.requires-dev]
|
|
@@ -1275,7 +1275,7 @@ wheels = [
|
|
|
1275
1275
|
|
|
1276
1276
|
[[package]]
|
|
1277
1277
|
name = "stjames"
|
|
1278
|
-
version = "0.0.
|
|
1278
|
+
version = "0.0.281"
|
|
1279
1279
|
source = { registry = "https://pypi.org/simple" }
|
|
1280
1280
|
dependencies = [
|
|
1281
1281
|
{ name = "more-itertools" },
|
|
@@ -1283,9 +1283,9 @@ dependencies = [
|
|
|
1283
1283
|
{ name = "pydantic" },
|
|
1284
1284
|
{ name = "requests" },
|
|
1285
1285
|
]
|
|
1286
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1286
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b9/bf/b834e4016ea17396564674f5b2804580bd4225c1386e095810549fde6f32/stjames-0.0.281.tar.gz", hash = "sha256:ef267c3fe4fe4ddd8bf39edd50334dc78945df171239d1ce73252c5ec0ee9a9f", size = 1437540, upload-time = "2026-10-08T17:51:46.292Z" }
|
|
1287
1287
|
wheels = [
|
|
1288
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1288
|
+
{ url = "https://files.pythonhosted.org/packages/d3/05/546152338686aab103ac1813bb65a94ac402c7db0fccb21e5c4e7a39de70/stjames-0.0.281-py3-none-any.whl", hash = "sha256:8e4c4dacc1af87168e38d8aa676a7bc7dfe0f8ed14fcb62f2d9eb56a54fbe471", size = 196578, upload-time = "2026-10-08T17:51:44.751Z" },
|
|
1289
1289
|
]
|
|
1290
1290
|
|
|
1291
1291
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md
RENAMED
|
File without changes
|
{rowan_python-3.2.1 → rowan_python-3.2.2}/docs/workflows/interaction-energy-decomposition.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|