rowan-python 3.1.4__tar.gz → 3.1.6__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 (190) hide show
  1. rowan_python-3.1.6/.agents/plugins/marketplace.json +20 -0
  2. rowan_python-3.1.6/.claude-plugin/marketplace.json +17 -0
  3. rowan_python-3.1.6/.codex-plugin/plugin.json +37 -0
  4. {rowan_python-3.1.4 → rowan_python-3.1.6}/PKG-INFO +2 -2
  5. {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/index.md +11 -0
  6. rowan_python-3.1.6/examples/binding_affinity.py +24 -0
  7. rowan_python-3.1.6/examples/covalent_docking.py +48 -0
  8. rowan_python-3.1.6/examples/covalent_inhibitor_scan.py +35 -0
  9. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/double_ended_ts_search.py +8 -10
  10. rowan_python-3.1.6/examples/periodic_dft.py +38 -0
  11. {rowan_python-3.1.4 → rowan_python-3.1.6}/pixi.lock +416 -425
  12. {rowan_python-3.1.4 → rowan_python-3.1.6}/pyproject.toml +2 -2
  13. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/__init__.py +11 -5
  14. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/molecule.py +44 -0
  15. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/__init__.py +10 -0
  16. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/analogue_docking.py +1 -0
  17. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/basic_calculation.py +48 -0
  18. rowan_python-3.1.6/rowan/workflows/binding_affinity.py +140 -0
  19. rowan_python-3.1.6/rowan/workflows/covalent_inhibitor_scan.py +129 -0
  20. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/docking.py +44 -16
  21. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/double_ended_ts_search.py +5 -4
  22. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/irc.py +42 -1
  23. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pose_analysis_md.py +5 -0
  24. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_cofolding.py +3 -0
  25. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/rbfe_graph.py +12 -0
  26. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/SKILL.md +3 -1
  27. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +5 -1
  28. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +25 -1
  29. rowan_python-3.1.6/skills/computational-chemistry-and-biology/reference/binding_affinity.md +61 -0
  30. rowan_python-3.1.6/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +48 -0
  31. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/docking.md +31 -3
  32. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +2 -2
  33. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/irc.md +2 -1
  34. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +1 -0
  35. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +1 -0
  36. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +9 -0
  37. rowan_python-3.1.4/examples/periodic_dft.py +0 -58
  38. {rowan_python-3.1.4 → rowan_python-3.1.6}/.envrc +0 -0
  39. {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/build-and-deploy-docs.yml +0 -0
  40. {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/publish-skill.yml +0 -0
  41. {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/python-publish.yml +0 -0
  42. {rowan_python-3.1.4 → rowan_python-3.1.6}/.github/workflows/test.yml +0 -0
  43. {rowan_python-3.1.4 → rowan_python-3.1.6}/.gitignore +0 -0
  44. {rowan_python-3.1.4 → rowan_python-3.1.6}/.pre-commit-config.yaml +0 -0
  45. {rowan_python-3.1.4 → rowan_python-3.1.6}/AGENTS.md +0 -0
  46. {rowan_python-3.1.4 → rowan_python-3.1.6}/CLAUDE.md +0 -0
  47. {rowan_python-3.1.4 → rowan_python-3.1.6}/GEMINI.md +0 -0
  48. {rowan_python-3.1.4 → rowan_python-3.1.6}/LICENSE +0 -0
  49. {rowan_python-3.1.4 → rowan_python-3.1.6}/README.md +0 -0
  50. {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/images/deciduous-tree-favicon.png +0 -0
  51. {rowan_python-3.1.4 → rowan_python-3.1.6}/docs/stylesheets/colors.css +0 -0
  52. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/PROTAC_solubility.py +0 -0
  53. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/admet.py +0 -0
  54. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/analogue_docking.py +0 -0
  55. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/aqueous_solubility.py +0 -0
  56. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation.py +0 -0
  57. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_from_json.py +0 -0
  58. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_with_constraint.py +0 -0
  59. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/basic_calculation_with_solvent.py +0 -0
  60. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/batch_docking.py +0 -0
  61. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/bde.py +0 -0
  62. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/boltz_paired_msa.py +0 -0
  63. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/boltz_single_msa.py +0 -0
  64. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/chai_paired_msa.py +0 -0
  65. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/chai_single_msa.py +0 -0
  66. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/cofolding_screen.py +0 -0
  67. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/colabfold_paired_msa.py +0 -0
  68. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/colabfold_single_msa.py +0 -0
  69. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformer_dependent_redox.py +0 -0
  70. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformers.py +0 -0
  71. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/conformers_screen.py +0 -0
  72. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/1iep_receptorH.pdb +0 -0
  73. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/Al_FCC.xyz +0 -0
  74. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/citalopram_1iep.xyz +0 -0
  75. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/ibuprofen_conformers.sdf +0 -0
  76. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/tyk2_ligands.sdf +0 -0
  77. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/tyk2_structure.pdb +0 -0
  78. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/data/workflow_example.json +0 -0
  79. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/dcd_download.py +0 -0
  80. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/descriptors.py +0 -0
  81. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/docking.py +0 -0
  82. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/docking_screen.py +0 -0
  83. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/electronic_properties.py +0 -0
  84. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/estimate_workflow.py +0 -0
  85. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/fukui_index.py +0 -0
  86. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/hydrogen_bond_basicity.py +0 -0
  87. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/interaction_energy_decomposition.py +0 -0
  88. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/ion_mobility.py +0 -0
  89. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/irc.py +0 -0
  90. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/macropka.py +0 -0
  91. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/membrane_permeability.py +0 -0
  92. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/multistage_optimization.py +0 -0
  93. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/nmr.py +0 -0
  94. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/optimization.py +0 -0
  95. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pdb_download.py +0 -0
  96. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/phenol_pka.py +0 -0
  97. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pka.py +0 -0
  98. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pocket_detection.py +0 -0
  99. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/pose_analysis_md.py +0 -0
  100. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/project_scoped_api_key.py +0 -0
  101. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_binder_design.py +0 -0
  102. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding.py +0 -0
  103. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding_with_constraints.py +0 -0
  104. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_cofolding_with_templates.py +0 -0
  105. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/protein_md.py +0 -0
  106. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/rbfe_graph.py +0 -0
  107. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/rbfe_resubmit.py +0 -0
  108. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/redox_potential.py +0 -0
  109. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/relative_binding_free_energy_perturbation.py +0 -0
  110. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/resubmit_with_perturbations.py +0 -0
  111. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/retrieve_workflow.py +0 -0
  112. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/scan.py +0 -0
  113. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/solvent_dependent_conformers.py +0 -0
  114. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/spin_states.py +0 -0
  115. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/strain.py +0 -0
  116. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/tautomer.py +0 -0
  117. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/template.py +0 -0
  118. {rowan_python-3.1.4 → rowan_python-3.1.6}/examples/webhook.py +0 -0
  119. {rowan_python-3.1.4 → rowan_python-3.1.6}/mkdocs.yml +0 -0
  120. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/api_keys.py +0 -0
  121. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/calculation.py +0 -0
  122. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/config.py +0 -0
  123. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/constants.py +0 -0
  124. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/folder.py +0 -0
  125. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/project.py +0 -0
  126. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/protein.py +0 -0
  127. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/py.typed +0 -0
  128. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/types.py +0 -0
  129. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/user.py +0 -0
  130. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/utils.py +0 -0
  131. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/admet.py +0 -0
  132. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/base.py +0 -0
  133. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/batch_docking.py +0 -0
  134. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/bde.py +0 -0
  135. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/conformer_search.py +0 -0
  136. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/constants.py +0 -0
  137. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/descriptors.py +0 -0
  138. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/electronic_properties.py +0 -0
  139. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/fukui.py +0 -0
  140. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  141. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  142. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/ion_mobility.py +0 -0
  143. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/macropka.py +0 -0
  144. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/membrane_permeability.py +0 -0
  145. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/msa.py +0 -0
  146. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/multistage_optimization.py +0 -0
  147. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/nmr.py +0 -0
  148. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pka.py +0 -0
  149. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/pocket_detection.py +0 -0
  150. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_binder_design.py +0 -0
  151. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/protein_md.py +0 -0
  152. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/redox_potential.py +0 -0
  153. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
  154. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/scan.py +0 -0
  155. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/solubility.py +0 -0
  156. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/solvent_dependent_conformers.py +0 -0
  157. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/spin_states.py +0 -0
  158. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/strain.py +0 -0
  159. {rowan_python-3.1.4 → rowan_python-3.1.6}/rowan/workflows/tautomer_search.py +0 -0
  160. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
  161. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/batch_docking.md +0 -0
  162. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
  163. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
  164. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
  165. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
  166. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
  167. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
  168. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
  169. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
  170. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
  171. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
  172. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
  173. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
  174. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
  175. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
  176. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
  177. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
  178. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
  179. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_md.md +0 -0
  180. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -0
  181. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
  182. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +0 -0
  183. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
  184. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
  185. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
  186. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
  187. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
  188. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
  189. {rowan_python-3.1.4 → rowan_python-3.1.6}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
  190. {rowan_python-3.1.4 → rowan_python-3.1.6}/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 on the Rowan platform via the rowan Python package",
13
+ "skills": ["./"],
14
+ "strict": false
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "computational-chemistry-and-biology",
3
+ "version": "0.0.1",
4
+ "description": "Run computational chemistry and structural biology calculations on the Rowan platform via the rowan-python package",
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 workflow selection guidance, safe defaults, result retrieval patterns, and links to detailed workflow 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
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.1.4
3
+ Version: 3.1.6
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.208
14
+ Requires-Dist: stjames>=0.0.228
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -55,6 +55,17 @@
55
55
  group_by_category: true
56
56
  filters: ["!^__"]
57
57
 
58
+ ## Binding Affinity
59
+ ::: rowan.workflows.binding_affinity
60
+ handler: python
61
+ options:
62
+ show_source: false
63
+ show_root_heading: false
64
+ show_root_toc_entry: false
65
+ members_order: source
66
+ group_by_category: true
67
+ filters: ["!^__"]
68
+
58
69
  ## Basic Calculation
59
70
  ::: rowan.workflows.basic_calculation
60
71
  handler: python
@@ -0,0 +1,24 @@
1
+ from pathlib import Path
2
+
3
+ import rowan
4
+
5
+ # Set your API key or use the ROWAN_API_KEY environment variable
6
+ # rowan.api_key = "rowan-sk..."
7
+ folder = rowan.get_folder("examples")
8
+ data_dir = Path(__file__).parent / "data"
9
+
10
+ protein = rowan.upload_protein("TYK2", data_dir / "tyk2_structure.pdb")
11
+ all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
12
+ ligands = dict(list(all_ligands.items())[:3])
13
+
14
+ workflow = rowan.submit_binding_affinity_workflow(
15
+ protein=protein,
16
+ ligand_structures=list(ligands.values()),
17
+ name="Binding Affinity — TYK2 ligands",
18
+ folder=folder,
19
+ )
20
+ print(f"View at: https://labs.rowansci.com/binding-affinity/{workflow.uuid}")
21
+
22
+ result = workflow.result()
23
+ for name, score in zip(ligands.keys(), result.scores, strict=False):
24
+ print(f"{name}: {score.binding_affinity:.2f} kcal/mol (strain: {score.strain})")
@@ -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",
@@ -0,0 +1,38 @@
1
+ """Band structure of bulk silicon using periodic DFT (Quantum ESPRESSO)."""
2
+
3
+ import rowan
4
+
5
+ # rowan.api_key = "rowan-sk..."
6
+ folder = rowan.get_folder("examples")
7
+
8
+ a = 5.431 # Å
9
+ si = rowan.Molecule.from_atoms(
10
+ atoms=[
11
+ rowan.Atom(atomic_number=14, position=(0.0, 0.0, 0.0)),
12
+ rowan.Atom(atomic_number=14, position=(a / 4, a / 4, a / 4)),
13
+ ],
14
+ charge=0,
15
+ multiplicity=1,
16
+ cell=rowan.PeriodicCell(
17
+ lattice_vectors=((0.0, a / 2, a / 2), (a / 2, 0.0, a / 2), (a / 2, a / 2, 0.0))
18
+ ),
19
+ )
20
+
21
+ workflow = rowan.submit_basic_calculation_workflow(
22
+ initial_molecule=si,
23
+ tasks=["band_structure"],
24
+ method="PBE",
25
+ basis_set="SSSP_PBE_efficiency",
26
+ pbc_dft_settings=rowan.PBCDFTSettings(kpoints=(2, 2, 2)),
27
+ name="Si band structure",
28
+ folder=folder,
29
+ )
30
+ print(f"https://labs.rowansci.com/calculation/{workflow.uuid}")
31
+ result = workflow.result()
32
+
33
+ print(f"Symmetry: space group {result.symmetry}")
34
+ print(f"XRD peaks: {len(result.xrd_peaks)} reflections")
35
+ print(f"Band gap: {result.band_gap:.4f} Ha") # ~0.020 Ha (PBE underestimates Si's 1.12 eV gap)
36
+ print(f"VBM: {result.band_structure.valence_band_maximum:.4f} Ha")
37
+ print(f"CBM: {result.band_structure.conduction_band_minimum:.4f} Ha")
38
+ print(f"DOS: {len(result.density_of_states)} points")