rowan-python 3.1.5__tar.gz → 3.1.7__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 (192) hide show
  1. rowan_python-3.1.7/.agents/plugins/marketplace.json +20 -0
  2. rowan_python-3.1.7/.claude-plugin/marketplace.json +17 -0
  3. rowan_python-3.1.7/.codex-plugin/plugin.json +37 -0
  4. {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/test.yml +1 -0
  5. {rowan_python-3.1.5 → rowan_python-3.1.7}/PKG-INFO +22 -4
  6. {rowan_python-3.1.5 → rowan_python-3.1.7}/README.md +20 -2
  7. rowan_python-3.1.7/examples/covalent_docking.py +48 -0
  8. rowan_python-3.1.7/examples/covalent_inhibitor_scan.py +35 -0
  9. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/double_ended_ts_search.py +8 -10
  10. {rowan_python-3.1.5 → rowan_python-3.1.7}/pixi.lock +341 -334
  11. {rowan_python-3.1.5 → rowan_python-3.1.7}/pyproject.toml +2 -2
  12. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/__init__.py +7 -5
  13. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/protein.py +2 -4
  14. rowan_python-3.1.7/rowan/test_utils.py +54 -0
  15. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/utils.py +40 -0
  16. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/__init__.py +5 -0
  17. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/analogue_docking.py +1 -0
  18. rowan_python-3.1.7/rowan/workflows/covalent_inhibitor_scan.py +129 -0
  19. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/docking.py +44 -16
  20. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/double_ended_ts_search.py +5 -4
  21. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/irc.py +42 -1
  22. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_cofolding.py +3 -0
  23. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/SKILL.md +12 -65
  24. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +5 -1
  25. rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +48 -0
  26. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/docking.md +31 -3
  27. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +2 -2
  28. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/irc.md +2 -1
  29. rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/mcp_execution.md +15 -0
  30. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +1 -0
  31. rowan_python-3.1.7/skills/computational-chemistry-and-biology/reference/python_sdk.md +64 -0
  32. {rowan_python-3.1.5 → rowan_python-3.1.7}/.envrc +0 -0
  33. {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/build-and-deploy-docs.yml +0 -0
  34. {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/publish-skill.yml +0 -0
  35. {rowan_python-3.1.5 → rowan_python-3.1.7}/.github/workflows/python-publish.yml +0 -0
  36. {rowan_python-3.1.5 → rowan_python-3.1.7}/.gitignore +0 -0
  37. {rowan_python-3.1.5 → rowan_python-3.1.7}/.pre-commit-config.yaml +0 -0
  38. {rowan_python-3.1.5 → rowan_python-3.1.7}/AGENTS.md +0 -0
  39. {rowan_python-3.1.5 → rowan_python-3.1.7}/CLAUDE.md +0 -0
  40. {rowan_python-3.1.5 → rowan_python-3.1.7}/GEMINI.md +0 -0
  41. {rowan_python-3.1.5 → rowan_python-3.1.7}/LICENSE +0 -0
  42. {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/images/deciduous-tree-favicon.png +0 -0
  43. {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/index.md +0 -0
  44. {rowan_python-3.1.5 → rowan_python-3.1.7}/docs/stylesheets/colors.css +0 -0
  45. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/PROTAC_solubility.py +0 -0
  46. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/admet.py +0 -0
  47. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/analogue_docking.py +0 -0
  48. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/aqueous_solubility.py +0 -0
  49. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation.py +0 -0
  50. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_from_json.py +0 -0
  51. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_with_constraint.py +0 -0
  52. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/basic_calculation_with_solvent.py +0 -0
  53. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/batch_docking.py +0 -0
  54. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/bde.py +0 -0
  55. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/binding_affinity.py +0 -0
  56. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/boltz_paired_msa.py +0 -0
  57. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/boltz_single_msa.py +0 -0
  58. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/chai_paired_msa.py +0 -0
  59. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/chai_single_msa.py +0 -0
  60. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/cofolding_screen.py +0 -0
  61. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/colabfold_paired_msa.py +0 -0
  62. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/colabfold_single_msa.py +0 -0
  63. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformer_dependent_redox.py +0 -0
  64. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformers.py +0 -0
  65. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/conformers_screen.py +0 -0
  66. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/1iep_receptorH.pdb +0 -0
  67. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/Al_FCC.xyz +0 -0
  68. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/citalopram_1iep.xyz +0 -0
  69. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/ibuprofen_conformers.sdf +0 -0
  70. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/tyk2_ligands.sdf +0 -0
  71. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/tyk2_structure.pdb +0 -0
  72. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/data/workflow_example.json +0 -0
  73. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/dcd_download.py +0 -0
  74. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/descriptors.py +0 -0
  75. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/docking.py +0 -0
  76. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/docking_screen.py +0 -0
  77. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/electronic_properties.py +0 -0
  78. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/estimate_workflow.py +0 -0
  79. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/fukui_index.py +0 -0
  80. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/hydrogen_bond_basicity.py +0 -0
  81. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/interaction_energy_decomposition.py +0 -0
  82. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/ion_mobility.py +0 -0
  83. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/irc.py +0 -0
  84. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/macropka.py +0 -0
  85. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/membrane_permeability.py +0 -0
  86. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/multistage_optimization.py +0 -0
  87. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/nmr.py +0 -0
  88. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/optimization.py +0 -0
  89. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pdb_download.py +0 -0
  90. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/periodic_dft.py +0 -0
  91. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/phenol_pka.py +0 -0
  92. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pka.py +0 -0
  93. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pocket_detection.py +0 -0
  94. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/pose_analysis_md.py +0 -0
  95. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/project_scoped_api_key.py +0 -0
  96. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_binder_design.py +0 -0
  97. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding.py +0 -0
  98. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding_with_constraints.py +0 -0
  99. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_cofolding_with_templates.py +0 -0
  100. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/protein_md.py +0 -0
  101. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/rbfe_graph.py +0 -0
  102. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/rbfe_resubmit.py +0 -0
  103. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/redox_potential.py +0 -0
  104. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/relative_binding_free_energy_perturbation.py +0 -0
  105. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/resubmit_with_perturbations.py +0 -0
  106. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/retrieve_workflow.py +0 -0
  107. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/scan.py +0 -0
  108. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/solvent_dependent_conformers.py +0 -0
  109. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/spin_states.py +0 -0
  110. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/strain.py +0 -0
  111. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/tautomer.py +0 -0
  112. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/template.py +0 -0
  113. {rowan_python-3.1.5 → rowan_python-3.1.7}/examples/webhook.py +0 -0
  114. {rowan_python-3.1.5 → rowan_python-3.1.7}/mkdocs.yml +0 -0
  115. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/api_keys.py +0 -0
  116. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/calculation.py +0 -0
  117. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/config.py +0 -0
  118. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/constants.py +0 -0
  119. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/folder.py +0 -0
  120. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/molecule.py +0 -0
  121. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/project.py +0 -0
  122. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/py.typed +0 -0
  123. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/types.py +0 -0
  124. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/user.py +0 -0
  125. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/admet.py +0 -0
  126. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/base.py +0 -0
  127. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/basic_calculation.py +0 -0
  128. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/batch_docking.py +0 -0
  129. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/bde.py +0 -0
  130. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/binding_affinity.py +0 -0
  131. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/conformer_search.py +0 -0
  132. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/constants.py +0 -0
  133. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/descriptors.py +0 -0
  134. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/electronic_properties.py +0 -0
  135. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/fukui.py +0 -0
  136. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  137. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  138. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/ion_mobility.py +0 -0
  139. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/macropka.py +0 -0
  140. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/membrane_permeability.py +0 -0
  141. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/msa.py +0 -0
  142. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/multistage_optimization.py +0 -0
  143. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/nmr.py +0 -0
  144. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pka.py +0 -0
  145. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pocket_detection.py +0 -0
  146. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/pose_analysis_md.py +0 -0
  147. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_binder_design.py +0 -0
  148. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/protein_md.py +0 -0
  149. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/rbfe_graph.py +0 -0
  150. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/redox_potential.py +0 -0
  151. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
  152. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/scan.py +0 -0
  153. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/solubility.py +0 -0
  154. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/solvent_dependent_conformers.py +0 -0
  155. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/spin_states.py +0 -0
  156. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/strain.py +0 -0
  157. {rowan_python-3.1.5 → rowan_python-3.1.7}/rowan/workflows/tautomer_search.py +0 -0
  158. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
  159. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
  160. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
  161. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
  162. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +0 -0
  163. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
  164. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
  165. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
  166. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
  167. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
  168. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
  169. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
  170. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
  171. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
  172. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
  173. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
  174. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
  175. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
  176. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
  177. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
  178. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +0 -0
  179. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
  180. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_md.md +0 -0
  181. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -0
  182. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
  183. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
  184. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
  185. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
  186. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
  187. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
  188. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
  189. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
  190. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
  191. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
  192. {rowan_python-3.1.5 → rowan_python-3.1.7}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "rowan",
3
+ "interface": {
4
+ "displayName": "Rowan"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "computational-chemistry-and-biology",
9
+ "source": {
10
+ "source": "local",
11
+ "path": "./"
12
+ },
13
+ "policy": {
14
+ "installation": "AVAILABLE",
15
+ "authentication": "ON_INSTALL"
16
+ },
17
+ "category": "Science"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "rowan",
3
+ "owner": {
4
+ "name": "Rowan",
5
+ "email": "eli@rowansci.com"
6
+ },
7
+ "description": "Claude Code plugins for the Rowan computational chemistry platform",
8
+ "plugins": [
9
+ {
10
+ "name": "computational-chemistry-and-biology",
11
+ "source": "./skills/computational-chemistry-and-biology",
12
+ "description": "Run computational chemistry and structural biology calculations through Rowan MCP tools or rowan-python",
13
+ "skills": ["./"],
14
+ "strict": false
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "computational-chemistry-and-biology",
3
+ "version": "0.0.2",
4
+ "description": "Run computational chemistry and structural biology calculations through Rowan MCP tools or rowan-python",
5
+ "skills": "./skills/",
6
+ "author": {
7
+ "name": "Rowan",
8
+ "email": "eli@rowansci.com",
9
+ "url": "https://rowansci.com"
10
+ },
11
+ "homepage": "https://rowansci.com",
12
+ "repository": "https://github.com/rowansci/rowan-python",
13
+ "license": "MIT",
14
+ "keywords": [
15
+ "computational chemistry",
16
+ "structural biology",
17
+ "molecular simulation",
18
+ "Rowan"
19
+ ],
20
+ "interface": {
21
+ "displayName": "Rowan Computational Chemistry",
22
+ "shortDescription": "Run computational chemistry and structural biology workflows with Rowan.",
23
+ "longDescription": "Use Rowan to choose and run molecular and protein workflows, including quantum chemistry, docking, molecular dynamics, protein structure prediction, and cheminformatics. The bundled skill provides shared scientific and workflow guidance for Rowan MCP tools and rowan-python, including safe defaults, result retrieval patterns, and detailed references.",
24
+ "developerName": "Rowan",
25
+ "category": "Science",
26
+ "capabilities": [
27
+ "Read",
28
+ "Compute"
29
+ ],
30
+ "websiteURL": "https://rowansci.com",
31
+ "defaultPrompt": [
32
+ "Run a Rowan calculation for this molecule.",
33
+ "Help me choose a Rowan workflow for my chemistry question.",
34
+ "Analyze this protein-ligand system with Rowan."
35
+ ]
36
+ }
37
+ }
@@ -31,3 +31,4 @@ jobs:
31
31
  - run: pixi run fmt
32
32
  - run: pixi run lint
33
33
  - run: pixi run types
34
+ - run: pixi run test
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.1.5
3
+ Version: 3.1.7
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.217
14
+ Requires-Dist: stjames>=0.0.228
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -30,9 +30,27 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
30
30
 
31
31
  ## Agent skill
32
32
 
33
- Ships with a [skill](skills/computational-chemistry-and-biology/) that makes it easy for coding agents to use Rowan's tools to power chemistry and biology tasks. To use it, copy the directory into your agent's skills folder.
33
+ Ships with a [computational chemistry and biology skill](skills/computational-chemistry-and-biology/)
34
+ that helps coding agents choose and run Rowan workflows through either Rowan MCP tools or the
35
+ Rowan Python SDK.
34
36
 
35
- Download the latest skill as a zip [here](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip), then unzip it into your agent's skills folder.
37
+ ### Claude Code
38
+
39
+ ```bash
40
+ claude plugin marketplace add https://github.com/rowansci/rowan-python.git
41
+ claude plugin install computational-chemistry-and-biology@rowan
42
+ ```
43
+
44
+ ### Codex
45
+
46
+ ```bash
47
+ codex plugin marketplace add rowansci/rowan-python --ref master
48
+ codex plugin add computational-chemistry-and-biology@rowan
49
+ ```
50
+
51
+ Start a new Claude Code or Codex session after installation. For manual installation, download the
52
+ [latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
53
+ and extract it into your agent's skills directory.
36
54
 
37
55
  ## Running examples
38
56
 
@@ -14,9 +14,27 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
14
14
 
15
15
  ## Agent skill
16
16
 
17
- Ships with a [skill](skills/computational-chemistry-and-biology/) that makes it easy for coding agents to use Rowan's tools to power chemistry and biology tasks. To use it, copy the directory into your agent's skills folder.
17
+ Ships with a [computational chemistry and biology skill](skills/computational-chemistry-and-biology/)
18
+ that helps coding agents choose and run Rowan workflows through either Rowan MCP tools or the
19
+ Rowan Python SDK.
18
20
 
19
- Download the latest skill as a zip [here](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip), then unzip it into your agent's skills folder.
21
+ ### Claude Code
22
+
23
+ ```bash
24
+ claude plugin marketplace add https://github.com/rowansci/rowan-python.git
25
+ claude plugin install computational-chemistry-and-biology@rowan
26
+ ```
27
+
28
+ ### Codex
29
+
30
+ ```bash
31
+ codex plugin marketplace add rowansci/rowan-python --ref master
32
+ codex plugin add computational-chemistry-and-biology@rowan
33
+ ```
34
+
35
+ Start a new Claude Code or Codex session after installation. For manual installation, download the
36
+ [latest skill ZIP](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip)
37
+ and extract it into your agent's skills directory.
20
38
 
21
39
  ## Running examples
22
40
 
@@ -0,0 +1,48 @@
1
+ import rowan
2
+
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
+ # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
6
+
7
+ # TG2, catalytic Cys277, acrylamide inhibitor (k_inact record P21980-00).
8
+ tg2_inhibitor = rowan.Molecule.from_smiles(
9
+ "C=CC(=O)NCCCC[C@H](NC(=O)Cc1ccc(Cl)c(Cl)c1)C(=O)N1CCN(C(=O)c2cccc3ccccc23)CC1"
10
+ )
11
+
12
+ protein = rowan.create_protein_from_pdb_id("2Q3Z")
13
+ # Chain A is TG2; chain X is a small covalently-bound peptide in the crystal, not
14
+ # part of the protein. `protein.chains` order isn't guaranteed, so select by name.
15
+ protein = protein.select_chains(["A"])
16
+ protein.prepare()
17
+
18
+ # Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
19
+ center = [-1.079, -3.081, 18.122]
20
+ size = [22.22, 14.08, 21.74]
21
+
22
+ # 0-based, all-atom (including hydrogens) indices of the reacting atoms.
23
+ # Ligand: acrylamide's terminal =CH2 carbon. Protein: Cys277 SG, found by downloading
24
+ # the prepared structure and locating that atom in file order.
25
+ covalent_ligand_atom_index = 0
26
+ covalent_protein_atom_index = 4293
27
+ gnina_settings = rowan.GninaSettings(
28
+ scoring_function="gnina_cnn",
29
+ covalent_ligand_atom_index=covalent_ligand_atom_index,
30
+ covalent_protein_atom_index=covalent_protein_atom_index,
31
+ )
32
+
33
+ workflow = rowan.submit_docking_workflow(
34
+ protein,
35
+ pocket=[center, size],
36
+ initial_molecule=tg2_inhibitor,
37
+ docking_settings=gnina_settings,
38
+ name="TG2 covalent docking (Cys277, 2Q3Z)",
39
+ folder=folder,
40
+ )
41
+
42
+ print(f"View workflow privately at: https://labs.rowansci.com/docking/{workflow.uuid}")
43
+
44
+ result = workflow.result()
45
+ print(result)
46
+
47
+ for i, score in enumerate(result.scores):
48
+ print(f" Pose {i}: score={score.score:.3f} posebusters_valid={score.posebusters_valid}")
@@ -0,0 +1,35 @@
1
+ import rowan
2
+
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
+ # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
6
+
7
+ # BTK, catalytic Cys481. 4YHF already has a covalently-bound small-molecule inhibitor
8
+ # (residue 4C9) linked to Cys481 SG via the ligand's C1 atom.
9
+ protein = rowan.create_protein_from_pdb_id("4YHF")
10
+ protein = protein.select_chains(["A"])
11
+ protein.prepare(remove_heterogens=False)
12
+
13
+ # 0-based indices of Cys481 SG and the ligand's C1 atom, found by downloading the
14
+ # prepared PDB (protein.download_pdb_file()).
15
+ protein_reactive_atom_index = 1571
16
+ ligand_reactive_atom_index = 4492
17
+
18
+ workflow = rowan.submit_covalent_inhibitor_scan_workflow(
19
+ protein=protein,
20
+ protein_reactive_atom_index=protein_reactive_atom_index,
21
+ ligand_reactive_atom_index=ligand_reactive_atom_index,
22
+ settings=rowan.CovalentInhibitorScanSettings(scan_num=4),
23
+ name="BTK covalent inhibitor scan (Cys481, 4YHF)",
24
+ folder=folder,
25
+ )
26
+
27
+ print(
28
+ f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
29
+ )
30
+
31
+ result = workflow.result()
32
+ print(result)
33
+
34
+ for distance, energy in result.get_energies():
35
+ print(f" distance={distance:.3f} Å energy={energy}")
@@ -22,22 +22,20 @@ H 0 0 2.3
22
22
  C 0 0 0
23
23
  N 0 0 1.2""",
24
24
  )
25
- fsm_settings = rowan.FSMSettings(
26
- optimization_coordinates=rowan.FSMOptimizationCoordinates.CARTESIAN,
27
- interpolation_method=rowan.FSMInterpolation.REDUNDANT_INTERNAL_COORDINATES,
28
- min_num_nodes=7,
29
- num_interpolation_points=5,
30
- max_optimizer_iterations=3,
31
- max_line_search_steps=2,
32
- max_displacement=0.1,
33
- )
34
25
 
26
+ # Freezing string method (FSM)
27
+ search_settings = rowan.StringMethodSettings(
28
+ freeze=True,
29
+ interpolation_method=rowan.Interpolation.GEODESIC,
30
+ )
31
+ # Use `freeze=False` for the growing string method (GSM)
32
+ # Use rowan.NEBSettings for nudged elastic band (NEB)
35
33
 
36
34
  workflow = rowan.submit_double_ended_ts_search_workflow(
37
35
  reactant=HCN,
38
36
  product=CNH,
39
37
  calculation_settings=rowan.Settings(method=rowan.Method.GFN2_XTB),
40
- search_settings=fsm_settings,
38
+ search_settings=search_settings,
41
39
  optimize_inputs=True,
42
40
  optimize_ts=True,
43
41
  name="H-C≡N Isomerization",