rowan-python 3.1.12__tar.gz → 3.1.14__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.
Files changed (269) hide show
  1. {rowan_python-3.1.12 → rowan_python-3.1.14}/.claude-plugin/marketplace.json +1 -2
  2. {rowan_python-3.1.12 → rowan_python-3.1.14}/.github/workflows/python-publish.yml +1 -1
  3. {rowan_python-3.1.12 → rowan_python-3.1.14}/PKG-INFO +3 -3
  4. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/covalent-inhibitor-scan.md +4 -0
  5. rowan_python-3.1.14/docs/workflows/docking.md +50 -0
  6. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/logp.md +3 -0
  7. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/macropka.md +2 -0
  8. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/nmr.md +3 -0
  9. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/pose-analysis-md.md +3 -0
  10. rowan_python-3.1.14/docs/workflows/protein-md.md +19 -0
  11. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/solvent-dependent-conformers.md +3 -0
  12. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/tautomer-search.md +3 -0
  13. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/binding_affinity.py +4 -0
  14. rowan_python-3.1.14/examples/covalent_docking.py +44 -0
  15. rowan_python-3.1.14/examples/covalent_inhibitor_scan.py +45 -0
  16. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/nmr.py +4 -0
  17. {rowan_python-3.1.12 → rowan_python-3.1.14}/pixi.lock +522 -477
  18. {rowan_python-3.1.12 → rowan_python-3.1.14}/pyproject.toml +2 -2
  19. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/__init__.py +7 -1
  20. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/protein.py +33 -3
  21. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/utils.py +80 -14
  22. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/__init__.py +2 -1
  23. rowan_python-3.1.14/rowan/workflows/_molecular_dynamics.py +219 -0
  24. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/base.py +13 -16
  25. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/bde.py +12 -1
  26. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/binding_affinity.py +46 -20
  27. rowan_python-3.1.14/rowan/workflows/covalent_inhibitor_scan.py +175 -0
  28. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/docking.py +6 -4
  29. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/macropka.py +4 -0
  30. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/msa.py +7 -9
  31. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/nmr.py +38 -0
  32. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/pose_analysis_md.py +34 -88
  33. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/protein_md.py +61 -88
  34. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/relative_binding_free_energy_perturbation.py +12 -15
  35. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/solvent_dependent_conformers.py +5 -0
  36. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/tautomer_search.py +14 -8
  37. rowan_python-3.1.14/skills/computational-chemistry-and-biology/.claude-plugin/plugin.json +21 -0
  38. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/SKILL.md +8 -1
  39. rowan_python-3.1.14/skills/computational-chemistry-and-biology/reference/binding_affinity.md +90 -0
  40. rowan_python-3.1.14/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +60 -0
  41. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/docking.md +48 -5
  42. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/macropka.md +3 -1
  43. rowan_python-3.1.14/skills/computational-chemistry-and-biology/reference/mcp_execution.md +24 -0
  44. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/nmr.md +8 -0
  45. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +9 -3
  46. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/protein_md.md +11 -4
  47. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/protein_preparation.md +2 -2
  48. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +1 -1
  49. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +1 -0
  50. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +1 -0
  51. rowan_python-3.1.14/tests/test_binding_affinity.py +124 -0
  52. rowan_python-3.1.14/tests/test_macropka_nmr.py +93 -0
  53. rowan_python-3.1.14/tests/test_mango_forcefields.py +120 -0
  54. rowan_python-3.1.14/tests/test_md_workflow_updates.py +296 -0
  55. rowan_python-3.1.14/tests/test_plugin.py +30 -0
  56. rowan_python-3.1.14/tests/test_protein.py +39 -0
  57. rowan_python-3.1.14/tests/test_utils.py +121 -0
  58. rowan_python-3.1.12/docs/workflows/docking.md +0 -11
  59. rowan_python-3.1.12/docs/workflows/protein-md.md +0 -11
  60. rowan_python-3.1.12/examples/covalent_docking.py +0 -64
  61. rowan_python-3.1.12/examples/covalent_inhibitor_scan.py +0 -59
  62. rowan_python-3.1.12/rowan/workflows/covalent_inhibitor_scan.py +0 -130
  63. rowan_python-3.1.12/skills/computational-chemistry-and-biology/reference/binding_affinity.md +0 -61
  64. rowan_python-3.1.12/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +0 -50
  65. rowan_python-3.1.12/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -15
  66. rowan_python-3.1.12/tests/test_utils.py +0 -54
  67. {rowan_python-3.1.12 → rowan_python-3.1.14}/.agents/plugins/marketplace.json +0 -0
  68. {rowan_python-3.1.12 → rowan_python-3.1.14}/.codex-plugin/plugin.json +0 -0
  69. {rowan_python-3.1.12 → rowan_python-3.1.14}/.envrc +0 -0
  70. {rowan_python-3.1.12 → rowan_python-3.1.14}/.github/workflows/build-and-deploy-docs.yml +0 -0
  71. {rowan_python-3.1.12 → rowan_python-3.1.14}/.github/workflows/publish-skill.yml +0 -0
  72. {rowan_python-3.1.12 → rowan_python-3.1.14}/.github/workflows/test.yml +0 -0
  73. {rowan_python-3.1.12 → rowan_python-3.1.14}/.gitignore +0 -0
  74. {rowan_python-3.1.12 → rowan_python-3.1.14}/.pre-commit-config.yaml +0 -0
  75. {rowan_python-3.1.12 → rowan_python-3.1.14}/AGENTS.md +0 -0
  76. {rowan_python-3.1.12 → rowan_python-3.1.14}/CLAUDE.md +0 -0
  77. {rowan_python-3.1.12 → rowan_python-3.1.14}/GEMINI.md +0 -0
  78. {rowan_python-3.1.12 → rowan_python-3.1.14}/LICENSE +0 -0
  79. {rowan_python-3.1.12 → rowan_python-3.1.14}/README.md +0 -0
  80. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/api-keys.md +0 -0
  81. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/calculation.md +0 -0
  82. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/folder.md +0 -0
  83. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/molecule.md +0 -0
  84. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/project.md +0 -0
  85. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/protein.md +0 -0
  86. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/user.md +0 -0
  87. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/webhooks.md +0 -0
  88. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/api/workflow.md +0 -0
  89. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/images/RowanLogoLarge.png +0 -0
  90. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/images/RowanSquareLogo.png +0 -0
  91. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/images/favicon.svg +0 -0
  92. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/index.md +0 -0
  93. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/stylesheets/colors.css +0 -0
  94. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/admet.md +0 -0
  95. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/analogue-docking.md +0 -0
  96. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/basic-calculation.md +0 -0
  97. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/batch-docking.md +0 -0
  98. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/binding-affinity.md +0 -0
  99. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/bond-dissociation-energy.md +0 -0
  100. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/conformer-search-settings.md +0 -0
  101. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/conformer-search.md +0 -0
  102. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/descriptors.md +0 -0
  103. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/double-ended-ts-search.md +0 -0
  104. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/electronic-properties.md +0 -0
  105. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/fukui.md +0 -0
  106. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +0 -0
  107. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/interaction-energy-decomposition.md +0 -0
  108. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/ion-mobility.md +0 -0
  109. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/irc.md +0 -0
  110. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/membrane-permeability.md +0 -0
  111. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/msa.md +0 -0
  112. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/multistage-optimization.md +0 -0
  113. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/pka.md +0 -0
  114. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/pocket-detection.md +0 -0
  115. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/protein-binder-design.md +0 -0
  116. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/protein-cofolding.md +0 -0
  117. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/protein-preparation.md +0 -0
  118. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/rbfe-graph.md +0 -0
  119. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/redox-potential.md +0 -0
  120. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/relative-binding-free-energy-perturbation.md +0 -0
  121. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/scan.md +0 -0
  122. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/settings.md +0 -0
  123. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/solubility.md +0 -0
  124. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/spin-states.md +0 -0
  125. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/strain.md +0 -0
  126. {rowan_python-3.1.12 → rowan_python-3.1.14}/docs/workflows/types.md +0 -0
  127. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/PROTAC_solubility.py +0 -0
  128. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/admet.py +0 -0
  129. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/analogue_docking.py +0 -0
  130. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/aqueous_solubility.py +0 -0
  131. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/basic_calculation.py +0 -0
  132. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/basic_calculation_from_json.py +0 -0
  133. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/basic_calculation_with_constraint.py +0 -0
  134. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/basic_calculation_with_solvent.py +0 -0
  135. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/batch_docking.py +0 -0
  136. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/batch_solubility.py +0 -0
  137. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/bde.py +0 -0
  138. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/boltz_paired_msa.py +0 -0
  139. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/boltz_single_msa.py +0 -0
  140. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/chai_paired_msa.py +0 -0
  141. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/chai_single_msa.py +0 -0
  142. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/cofolding_screen.py +0 -0
  143. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/colabfold_paired_msa.py +0 -0
  144. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/colabfold_single_msa.py +0 -0
  145. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/conformer_dependent_redox.py +0 -0
  146. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/conformers.py +0 -0
  147. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/conformers_screen.py +0 -0
  148. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/1iep_receptorH.pdb +0 -0
  149. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/Al_FCC.xyz +0 -0
  150. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/citalopram_1iep.xyz +0 -0
  151. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/ibuprofen_conformers.sdf +0 -0
  152. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/tyk2_ligands.sdf +0 -0
  153. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/tyk2_structure.pdb +0 -0
  154. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/data/workflow_example.json +0 -0
  155. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/dcd_download.py +0 -0
  156. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/descriptors.py +0 -0
  157. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/docking.py +0 -0
  158. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/docking_screen.py +0 -0
  159. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/double_ended_ts_search.py +0 -0
  160. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/electronic_properties.py +0 -0
  161. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/estimate_workflow.py +0 -0
  162. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/fukui_index.py +0 -0
  163. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/hydrogen_bond_basicity.py +0 -0
  164. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/interaction_energy_decomposition.py +0 -0
  165. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/ion_mobility.py +0 -0
  166. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/irc.py +0 -0
  167. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/logp.py +0 -0
  168. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/macropka.py +0 -0
  169. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/membrane_permeability.py +0 -0
  170. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/multistage_optimization.py +0 -0
  171. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/optimization.py +0 -0
  172. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/pdb_download.py +0 -0
  173. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/periodic_dft.py +0 -0
  174. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/phenol_pka.py +0 -0
  175. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/pka.py +0 -0
  176. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/pocket_detection.py +0 -0
  177. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/pose_analysis_md.py +0 -0
  178. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/project_scoped_api_key.py +0 -0
  179. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_binder_design.py +0 -0
  180. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_cofolding.py +0 -0
  181. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_cofolding_with_constraints.py +0 -0
  182. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_cofolding_with_templates.py +0 -0
  183. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_md.py +0 -0
  184. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/protein_preparation.py +0 -0
  185. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/rbfe_graph.py +0 -0
  186. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/rbfe_resubmit.py +0 -0
  187. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/redox_potential.py +0 -0
  188. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/relative_binding_free_energy_perturbation.py +0 -0
  189. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/resubmit_with_perturbations.py +0 -0
  190. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/retrieve_workflow.py +0 -0
  191. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/scan.py +0 -0
  192. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/solvent_dependent_conformers.py +0 -0
  193. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/spin_states.py +0 -0
  194. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/strain.py +0 -0
  195. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/tautomer.py +0 -0
  196. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/template.py +0 -0
  197. {rowan_python-3.1.12 → rowan_python-3.1.14}/examples/webhook.py +0 -0
  198. {rowan_python-3.1.12 → rowan_python-3.1.14}/mkdocs.yml +0 -0
  199. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/api_keys.py +0 -0
  200. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/calculation.py +0 -0
  201. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/config.py +0 -0
  202. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/constants.py +0 -0
  203. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/folder.py +0 -0
  204. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/molecule.py +0 -0
  205. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/project.py +0 -0
  206. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/py.typed +0 -0
  207. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/types.py +0 -0
  208. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/user.py +0 -0
  209. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/admet.py +0 -0
  210. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/analogue_docking.py +0 -0
  211. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/basic_calculation.py +0 -0
  212. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/batch_docking.py +0 -0
  213. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/conformer_search.py +0 -0
  214. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/constants.py +0 -0
  215. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/descriptors.py +0 -0
  216. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/double_ended_ts_search.py +0 -0
  217. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/electronic_properties.py +0 -0
  218. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/fukui.py +0 -0
  219. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  220. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  221. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/ion_mobility.py +0 -0
  222. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/irc.py +0 -0
  223. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/logp.py +0 -0
  224. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/membrane_permeability.py +0 -0
  225. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/multistage_optimization.py +0 -0
  226. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/pka.py +0 -0
  227. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/pocket_detection.py +0 -0
  228. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/protein_binder_design.py +0 -0
  229. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/protein_cofolding.py +0 -0
  230. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/protein_preparation.py +0 -0
  231. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/rbfe_graph.py +0 -0
  232. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/redox_potential.py +0 -0
  233. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/scan.py +0 -0
  234. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/solubility.py +0 -0
  235. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/spin_states.py +0 -0
  236. {rowan_python-3.1.12 → rowan_python-3.1.14}/rowan/workflows/strain.py +0 -0
  237. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
  238. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +0 -0
  239. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
  240. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
  241. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
  242. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
  243. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
  244. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
  245. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
  246. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
  247. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
  248. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
  249. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
  250. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
  251. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
  252. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
  253. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
  254. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
  255. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
  256. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
  257. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
  258. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
  259. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +0 -0
  260. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/python_sdk.md +0 -0
  261. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
  262. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
  263. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
  264. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
  265. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
  266. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
  267. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
  268. {rowan_python-3.1.12 → rowan_python-3.1.14}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
  269. {rowan_python-3.1.12 → rowan_python-3.1.14}/tests/test_workflow_submission.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
- "skills": ["./"],
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@27b31702a0e7fc50959f5ad993c78deac1bdfc29
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.4
1
+ Metadata-Version: 2.5
2
2
  Name: rowan-python
3
- Version: 3.1.12
3
+ Version: 3.1.14
4
4
  Summary: Rowan Python Library
5
5
  Project-URL: Homepage, https://github.com/rowansci/rowan-client
6
6
  Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
@@ -11,7 +11,7 @@ Requires-Dist: httpx
11
11
  Requires-Dist: nest-asyncio
12
12
  Requires-Dist: rdkit
13
13
  Requires-Dist: setuptools
14
- Requires-Dist: stjames<0.0.238,>=0.0.237
14
+ Requires-Dist: stjames>=0.0.257
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -1,5 +1,9 @@
1
1
  # Covalent Inhibitor Scan
2
2
 
3
+ !!! warning "Beta"
4
+
5
+ This workflow is in beta. Its interface and behavior may change.
6
+
3
7
  ::: rowan.workflows.covalent_inhibitor_scan
4
8
  handler: python
5
9
  options:
@@ -0,0 +1,50 @@
1
+ # Docking
2
+
3
+ The docking workflow supports Vina docking and both noncovalent and covalent gnina docking.
4
+ Passing `GninaSettings` selects gnina; it does not by itself enable covalent docking.
5
+
6
+ ## Covalent docking
7
+
8
+ Set both covalent atom indices on `GninaSettings` to form a bond between a known ligand atom and
9
+ protein atom. Covalent gnina docking requires `scoring_function="vina"`.
10
+
11
+ Prepare the protein first, then resolve the reactive protein atom from the prepared structure.
12
+ Protein preparation can change atom ordering and residue numbering.
13
+
14
+ Supply the ligand in its expected post-reaction, covalently bound topology; gnina does not infer the
15
+ reaction. For a Michael acceptor `C=CC(=O)NR`, use the hydrogen-capped product `CCC(=O)NR` and
16
+ select the terminal β-carbon as the covalent ligand atom.
17
+
18
+ ```python
19
+ prepared_protein = preparation_workflow.result().get_prepared_protein()
20
+ reactive_protein_atom_index = prepared_protein.get_atom_index(
21
+ chain="A", residue=reactive_residue, atom="SG"
22
+ )
23
+ settings = rowan.GninaSettings(
24
+ scoring_function="vina",
25
+ covalent_ligand_atom_index=reactive_ligand_atom_index,
26
+ covalent_protein_atom_index=reactive_protein_atom_index,
27
+ )
28
+ workflow = rowan.submit_docking_workflow(
29
+ prepared_protein.uuid,
30
+ pocket=[center, size],
31
+ initial_molecule=ligand,
32
+ docking_settings=settings,
33
+ )
34
+ ```
35
+
36
+ Both indices are zero-based all-atom indices, including hydrogens. See
37
+ `examples/covalent_docking.py` for a complete TG2 example.
38
+
39
+ PoseBusters validation is skipped for covalent poses. Their `posebusters_valid` value is `None`,
40
+ meaning not evaluated rather than failed; do not use it to reject covalent poses.
41
+
42
+ ::: rowan.workflows.docking
43
+ handler: python
44
+ options:
45
+ show_source: false
46
+ show_root_heading: false
47
+ show_root_toc_entry: false
48
+ members_order: source
49
+ group_by_category: true
50
+ filters: ["!^_"]
@@ -1,5 +1,8 @@
1
1
  # LogP
2
2
 
3
+ Available methods include the default Chemprop model, Crippen, and the higher-cost
4
+ `method="cosmors"` conformer-ensemble calculation.
5
+
3
6
  ::: rowan.workflows.logp
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,7 @@
1
1
  # MacropKa
2
2
 
3
+ Choose `method="starling"` (default) or `method="starling_ii"` when submitting the workflow.
4
+
3
5
  ::: rowan.workflows.macropka
4
6
  handler: python
5
7
  options:
@@ -1,5 +1,8 @@
1
1
  # NMR
2
2
 
3
+ Completed results expose both chemical shifts and typed J-coupling predictions through
4
+ `result.predicted_couplings`.
5
+
3
6
  ::: rowan.workflows.nmr
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,8 @@
1
1
  # Pose Analysis MD
2
2
 
3
+ Pose-analysis MD accepts selectable small-molecule, protein, and water force fields. Mean and
4
+ medoid structures are available through the same result helpers as protein MD.
5
+
3
6
  ::: rowan.workflows.pose_analysis_md
4
7
  handler: python
5
8
  options:
@@ -0,0 +1,19 @@
1
+ # Protein MD
2
+
3
+ Protein MD accepts selectable small-molecule, protein, and water force fields. Results expose
4
+ binder RMSD, MM/GBSA scores, mean-structure UUIDs, and medoid frame indices per trajectory. Use
5
+ `get_mean_structure`, `download_mean_structure`, or `download_medoid_structure` to retrieve
6
+ representative structures.
7
+
8
+ For protein structures containing non-polymer ligands, pass their SMILES through
9
+ `small_molecules` and select the residues to analyze through `rowan.Binder`.
10
+
11
+ ::: rowan.workflows.protein_md
12
+ handler: python
13
+ options:
14
+ show_source: false
15
+ show_root_heading: false
16
+ show_root_toc_entry: false
17
+ members_order: source
18
+ group_by_category: true
19
+ filters: ["!^_"]
@@ -1,5 +1,8 @@
1
1
  # Solvent-Dependent Conformers
2
2
 
3
+ The default final correction is `"CPCMX"`. Pass `final_correction="COSMO_RS"` for the
4
+ higher-cost COSMO-RS alternative.
5
+
3
6
  ::: rowan.workflows.solvent_dependent_conformers
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,8 @@
1
1
  # Tautomer Search
2
2
 
3
+ Pass `final_correction="COSMO_RS"` to enable the optional higher-cost COSMO-RS correction.
4
+ The default is no final correction.
5
+
3
6
  ::: rowan.workflows.tautomer_search
4
7
  handler: python
5
8
  options:
@@ -11,6 +11,7 @@ protein = rowan.upload_protein("TYK2", data_dir / "tyk2_structure.pdb")
11
11
  all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
12
12
  ligands = dict(list(all_ligands.items())[:3])
13
13
 
14
+ # SQM-based scoring (default): binding_affinity in kcal/mol.
14
15
  workflow = rowan.submit_binding_affinity_workflow(
15
16
  protein=protein.uuid,
16
17
  ligand_structures=list(ligands.values()),
@@ -21,4 +22,7 @@ print(f"View at: https://labs.rowansci.com/binding-affinity/{workflow.uuid}")
21
22
 
22
23
  result = workflow.result()
23
24
  for name, score in zip(ligands.keys(), result.scores, strict=False):
25
+ if score is None:
26
+ print(f"{name}: scoring failed")
27
+ continue
24
28
  print(f"{name}: {score.binding_affinity:.2f} kcal/mol (strain: {score.strain})")
@@ -0,0 +1,44 @@
1
+ import rowan
2
+
3
+ folder = rowan.get_folder("examples")
4
+
5
+ tg2_inhibitor = rowan.Molecule.from_smiles(
6
+ "CCC(=O)NCCCC[C@H](NC(=O)Cc1ccc(Cl)c(Cl)c1)C(=O)N1CCN(C(=O)c2cccc3ccccc23)CC1"
7
+ )
8
+
9
+ protein = rowan.create_protein_from_pdb_id("2Q3Z")
10
+ protein = protein.select_chains(["A"])
11
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
12
+ protein=protein.uuid,
13
+ name="Prepare TG2",
14
+ folder=folder,
15
+ )
16
+ protein = preparation_workflow.result().get_prepared_protein()
17
+
18
+ center = [-1.079, -3.081, 18.122]
19
+ size = [22.22, 14.08, 21.74]
20
+
21
+ # Protein preparation renumbers Cys277 to residue 278.
22
+ cys277_sg_index = protein.get_atom_index(chain="A", residue=278, atom="SG")
23
+ gnina_settings = rowan.GninaSettings(
24
+ scoring_function="vina",
25
+ covalent_ligand_atom_index=0,
26
+ covalent_protein_atom_index=cys277_sg_index,
27
+ )
28
+
29
+ workflow = rowan.submit_docking_workflow(
30
+ protein.uuid,
31
+ pocket=[center, size],
32
+ initial_molecule=tg2_inhibitor,
33
+ docking_settings=gnina_settings,
34
+ name="TG2 covalent docking (Cys277, 2Q3Z)",
35
+ folder=folder,
36
+ )
37
+
38
+ print(f"View workflow privately at: https://labs.rowansci.com/docking/{workflow.uuid}")
39
+
40
+ result = workflow.result()
41
+ print(result)
42
+
43
+ for i, score in enumerate(result.scores):
44
+ print(f" Pose {i}: score={score.score:.3f}")
@@ -0,0 +1,45 @@
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
+ # Protein preparation normalizes 4YHF's residue numbering: Cys481 becomes residue 101,
22
+ # while the retained 4C9 ligand remains residue 701.
23
+ protein_reactive_atom_index = protein.get_atom_index(chain="A", residue=101, atom="SG")
24
+ ligand_reactive_atom_index = protein.get_atom_index(
25
+ chain="A", residue=701, atom="C1", entity_type="non_polymer"
26
+ )
27
+
28
+ workflow = rowan.submit_covalent_inhibitor_scan_workflow(
29
+ protein=protein.uuid,
30
+ protein_reactive_atom_index=protein_reactive_atom_index,
31
+ ligand_reactive_atom_index=ligand_reactive_atom_index,
32
+ reactant_smiles=ligand_smiles,
33
+ name="BTK covalent inhibitor scan (Cys481, 4YHF)",
34
+ folder=folder,
35
+ )
36
+
37
+ print(
38
+ f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
39
+ )
40
+
41
+ result = workflow.result()
42
+ print(result)
43
+
44
+ for distance, free_energy in result.get_energies():
45
+ print(f" distance={distance:.3f} Å free_energy={free_energy} kcal/mol")
@@ -15,3 +15,7 @@ result = workflow.result()
15
15
  # print hydrogen peaks (atomic number 1 = hydrogen)
16
16
  for peak in result.predicted_peaks[1]:
17
17
  print(peak)
18
+
19
+ # print predicted scalar J-couplings
20
+ for coupling in result.predicted_couplings:
21
+ print(coupling)