rowan-python 3.1.11__tar.gz → 3.1.12__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 (254) hide show
  1. {rowan_python-3.1.11 → rowan_python-3.1.12}/PKG-INFO +1 -1
  2. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/api-keys.md +2 -2
  3. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/calculation.md +1 -1
  4. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/folder.md +1 -1
  5. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/molecule.md +2 -2
  6. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/project.md +2 -2
  7. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/protein.md +1 -1
  8. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/user.md +1 -1
  9. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/webhooks.md +1 -1
  10. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/api/workflow.md +1 -1
  11. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/index.md +2 -0
  12. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/admet.md +1 -1
  13. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/analogue-docking.md +1 -1
  14. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/basic-calculation.md +1 -1
  15. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/batch-docking.md +1 -1
  16. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/binding-affinity.md +1 -1
  17. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/bond-dissociation-energy.md +1 -1
  18. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/conformer-search.md +1 -1
  19. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/covalent-inhibitor-scan.md +1 -1
  20. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/descriptors.md +1 -1
  21. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/docking.md +1 -1
  22. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/double-ended-ts-search.md +1 -1
  23. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/electronic-properties.md +1 -1
  24. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/fukui.md +1 -1
  25. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +1 -1
  26. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/interaction-energy-decomposition.md +1 -1
  27. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/ion-mobility.md +1 -1
  28. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/irc.md +1 -1
  29. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/logp.md +1 -1
  30. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/macropka.md +1 -1
  31. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/membrane-permeability.md +1 -1
  32. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/msa.md +1 -1
  33. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/multistage-optimization.md +1 -1
  34. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/nmr.md +1 -1
  35. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/pka.md +1 -1
  36. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/pocket-detection.md +1 -1
  37. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/pose-analysis-md.md +1 -1
  38. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/protein-binder-design.md +1 -1
  39. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/protein-cofolding.md +1 -1
  40. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/protein-md.md +1 -1
  41. rowan_python-3.1.12/docs/workflows/protein-preparation.md +11 -0
  42. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/rbfe-graph.md +1 -1
  43. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/redox-potential.md +1 -1
  44. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/relative-binding-free-energy-perturbation.md +1 -1
  45. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/scan.md +1 -1
  46. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/solubility.md +1 -1
  47. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/solvent-dependent-conformers.md +1 -1
  48. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/spin-states.md +1 -1
  49. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/strain.md +1 -1
  50. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/tautomer-search.md +1 -1
  51. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/analogue_docking.py +1 -1
  52. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/batch_docking.py +7 -5
  53. rowan_python-3.1.12/examples/batch_solubility.py +21 -0
  54. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/binding_affinity.py +1 -1
  55. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/covalent_docking.py +22 -6
  56. rowan_python-3.1.12/examples/covalent_inhibitor_scan.py +59 -0
  57. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/docking.py +8 -4
  58. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/docking_screen.py +7 -5
  59. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/pocket_detection.py +7 -5
  60. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/pose_analysis_md.py +9 -4
  61. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/protein_md.py +7 -6
  62. rowan_python-3.1.12/examples/protein_preparation.py +18 -0
  63. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/relative_binding_free_energy_perturbation.py +7 -2
  64. {rowan_python-3.1.11 → rowan_python-3.1.12}/mkdocs.yml +1 -0
  65. {rowan_python-3.1.11 → rowan_python-3.1.12}/pixi.lock +476 -437
  66. {rowan_python-3.1.11 → rowan_python-3.1.12}/pyproject.toml +2 -2
  67. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/__init__.py +1 -1
  68. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/protein.py +8 -5
  69. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/types.py +1 -0
  70. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/__init__.py +7 -1
  71. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/analogue_docking.py +2 -1
  72. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/base.py +69 -5
  73. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/batch_docking.py +4 -1
  74. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/binding_affinity.py +2 -2
  75. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/covalent_inhibitor_scan.py +2 -1
  76. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/docking.py +2 -1
  77. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/pocket_detection.py +2 -1
  78. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/pose_analysis_md.py +2 -1
  79. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/protein_md.py +2 -1
  80. rowan_python-3.1.12/rowan/workflows/protein_preparation.py +130 -0
  81. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/relative_binding_free_energy_perturbation.py +2 -1
  82. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/solubility.py +110 -28
  83. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/SKILL.md +2 -1
  84. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +3 -3
  85. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/batch_docking.md +7 -5
  86. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/binding_affinity.md +2 -2
  87. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +2 -2
  88. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/docking.md +8 -6
  89. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +8 -6
  90. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +9 -4
  91. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/protein_md.md +8 -6
  92. rowan_python-3.1.12/skills/computational-chemistry-and-biology/reference/protein_preparation.md +101 -0
  93. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +6 -3
  94. rowan_python-3.1.12/tests/test_workflow_submission.py +118 -0
  95. rowan_python-3.1.11/examples/covalent_inhibitor_scan.py +0 -38
  96. rowan_python-3.1.11/skills/computational-chemistry-and-biology/reference/protein_prep.md +0 -79
  97. {rowan_python-3.1.11 → rowan_python-3.1.12}/.agents/plugins/marketplace.json +0 -0
  98. {rowan_python-3.1.11 → rowan_python-3.1.12}/.claude-plugin/marketplace.json +0 -0
  99. {rowan_python-3.1.11 → rowan_python-3.1.12}/.codex-plugin/plugin.json +0 -0
  100. {rowan_python-3.1.11 → rowan_python-3.1.12}/.envrc +0 -0
  101. {rowan_python-3.1.11 → rowan_python-3.1.12}/.github/workflows/build-and-deploy-docs.yml +0 -0
  102. {rowan_python-3.1.11 → rowan_python-3.1.12}/.github/workflows/publish-skill.yml +0 -0
  103. {rowan_python-3.1.11 → rowan_python-3.1.12}/.github/workflows/python-publish.yml +0 -0
  104. {rowan_python-3.1.11 → rowan_python-3.1.12}/.github/workflows/test.yml +0 -0
  105. {rowan_python-3.1.11 → rowan_python-3.1.12}/.gitignore +0 -0
  106. {rowan_python-3.1.11 → rowan_python-3.1.12}/.pre-commit-config.yaml +0 -0
  107. {rowan_python-3.1.11 → rowan_python-3.1.12}/AGENTS.md +0 -0
  108. {rowan_python-3.1.11 → rowan_python-3.1.12}/CLAUDE.md +0 -0
  109. {rowan_python-3.1.11 → rowan_python-3.1.12}/GEMINI.md +0 -0
  110. {rowan_python-3.1.11 → rowan_python-3.1.12}/LICENSE +0 -0
  111. {rowan_python-3.1.11 → rowan_python-3.1.12}/README.md +0 -0
  112. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/images/RowanLogoLarge.png +0 -0
  113. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/images/RowanSquareLogo.png +0 -0
  114. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/images/favicon.svg +0 -0
  115. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/stylesheets/colors.css +0 -0
  116. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/conformer-search-settings.md +0 -0
  117. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/settings.md +0 -0
  118. {rowan_python-3.1.11 → rowan_python-3.1.12}/docs/workflows/types.md +0 -0
  119. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/PROTAC_solubility.py +0 -0
  120. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/admet.py +0 -0
  121. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/aqueous_solubility.py +0 -0
  122. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/basic_calculation.py +0 -0
  123. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/basic_calculation_from_json.py +0 -0
  124. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/basic_calculation_with_constraint.py +0 -0
  125. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/basic_calculation_with_solvent.py +0 -0
  126. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/bde.py +0 -0
  127. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/boltz_paired_msa.py +0 -0
  128. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/boltz_single_msa.py +0 -0
  129. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/chai_paired_msa.py +0 -0
  130. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/chai_single_msa.py +0 -0
  131. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/cofolding_screen.py +0 -0
  132. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/colabfold_paired_msa.py +0 -0
  133. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/colabfold_single_msa.py +0 -0
  134. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/conformer_dependent_redox.py +0 -0
  135. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/conformers.py +0 -0
  136. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/conformers_screen.py +0 -0
  137. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/1iep_receptorH.pdb +0 -0
  138. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/Al_FCC.xyz +0 -0
  139. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/citalopram_1iep.xyz +0 -0
  140. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/ibuprofen_conformers.sdf +0 -0
  141. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/tyk2_ligands.sdf +0 -0
  142. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/tyk2_structure.pdb +0 -0
  143. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/data/workflow_example.json +0 -0
  144. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/dcd_download.py +0 -0
  145. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/descriptors.py +0 -0
  146. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/double_ended_ts_search.py +0 -0
  147. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/electronic_properties.py +0 -0
  148. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/estimate_workflow.py +0 -0
  149. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/fukui_index.py +0 -0
  150. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/hydrogen_bond_basicity.py +0 -0
  151. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/interaction_energy_decomposition.py +0 -0
  152. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/ion_mobility.py +0 -0
  153. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/irc.py +0 -0
  154. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/logp.py +0 -0
  155. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/macropka.py +0 -0
  156. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/membrane_permeability.py +0 -0
  157. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/multistage_optimization.py +0 -0
  158. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/nmr.py +0 -0
  159. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/optimization.py +0 -0
  160. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/pdb_download.py +0 -0
  161. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/periodic_dft.py +0 -0
  162. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/phenol_pka.py +0 -0
  163. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/pka.py +0 -0
  164. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/project_scoped_api_key.py +0 -0
  165. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/protein_binder_design.py +0 -0
  166. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/protein_cofolding.py +0 -0
  167. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/protein_cofolding_with_constraints.py +0 -0
  168. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/protein_cofolding_with_templates.py +0 -0
  169. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/rbfe_graph.py +0 -0
  170. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/rbfe_resubmit.py +0 -0
  171. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/redox_potential.py +0 -0
  172. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/resubmit_with_perturbations.py +0 -0
  173. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/retrieve_workflow.py +0 -0
  174. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/scan.py +0 -0
  175. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/solvent_dependent_conformers.py +0 -0
  176. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/spin_states.py +0 -0
  177. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/strain.py +0 -0
  178. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/tautomer.py +0 -0
  179. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/template.py +0 -0
  180. {rowan_python-3.1.11 → rowan_python-3.1.12}/examples/webhook.py +0 -0
  181. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/api_keys.py +0 -0
  182. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/calculation.py +0 -0
  183. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/config.py +0 -0
  184. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/constants.py +0 -0
  185. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/folder.py +0 -0
  186. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/molecule.py +0 -0
  187. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/project.py +0 -0
  188. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/py.typed +0 -0
  189. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/user.py +0 -0
  190. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/utils.py +0 -0
  191. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/admet.py +0 -0
  192. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/basic_calculation.py +0 -0
  193. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/bde.py +0 -0
  194. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/conformer_search.py +0 -0
  195. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/constants.py +0 -0
  196. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/descriptors.py +0 -0
  197. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/double_ended_ts_search.py +0 -0
  198. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/electronic_properties.py +0 -0
  199. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/fukui.py +0 -0
  200. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  201. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  202. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/ion_mobility.py +0 -0
  203. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/irc.py +0 -0
  204. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/logp.py +0 -0
  205. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/macropka.py +0 -0
  206. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/membrane_permeability.py +0 -0
  207. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/msa.py +0 -0
  208. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/multistage_optimization.py +0 -0
  209. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/nmr.py +0 -0
  210. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/pka.py +0 -0
  211. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/protein_binder_design.py +0 -0
  212. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/protein_cofolding.py +0 -0
  213. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/rbfe_graph.py +0 -0
  214. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/redox_potential.py +0 -0
  215. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/scan.py +0 -0
  216. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/solvent_dependent_conformers.py +0 -0
  217. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/spin_states.py +0 -0
  218. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/strain.py +0 -0
  219. {rowan_python-3.1.11 → rowan_python-3.1.12}/rowan/workflows/tautomer_search.py +0 -0
  220. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
  221. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
  222. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
  223. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
  224. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
  225. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
  226. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
  227. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
  228. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
  229. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
  230. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
  231. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
  232. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
  233. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
  234. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/macropka.md +0 -0
  235. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -0
  236. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
  237. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
  238. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
  239. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/nmr.md +0 -0
  240. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
  241. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
  242. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +0 -0
  243. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/python_sdk.md +0 -0
  244. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
  245. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
  246. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
  247. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
  248. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +0 -0
  249. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
  250. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
  251. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +0 -0
  252. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
  253. {rowan_python-3.1.11 → rowan_python-3.1.12}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
  254. {rowan_python-3.1.11/rowan → rowan_python-3.1.12/tests}/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.1.11
3
+ Version: 3.1.12
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
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
 
13
13
  ::: rowan.utils
14
14
  handler: python
@@ -18,7 +18,7 @@
18
18
  show_root_toc_entry: false
19
19
  members_order: source
20
20
  group_by_category: true
21
- filters: ["!^__"]
21
+ filters: ["!^_"]
22
22
  members:
23
23
  - api_credentials
24
24
  - get_api_key
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
 
13
13
  ::: rowan.utils
14
14
  handler: python
@@ -18,7 +18,7 @@
18
18
  show_root_toc_entry: false
19
19
  members_order: source
20
20
  group_by_category: true
21
- filters: ["!^__"]
21
+ filters: ["!^_"]
22
22
  members:
23
23
  - smiles_to_stjames
24
24
 
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
 
13
13
  ::: rowan.utils
14
14
  handler: python
@@ -18,6 +18,6 @@
18
18
  show_root_toc_entry: false
19
19
  members_order: source
20
20
  group_by_category: true
21
- filters: ["!^__"]
21
+ filters: ["!^_"]
22
22
  members:
23
23
  - get_project_uuid
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
 
13
13
  ::: stjames.protein
14
14
  handler: python
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
  members:
13
13
  - User
14
14
  - Organization
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
  members:
13
13
  - get_webhook_secret
14
14
  - create_webhook_secret
@@ -8,7 +8,7 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
12
12
  members:
13
13
  - Workflow
14
14
  - WorkflowResult
@@ -33,9 +33,11 @@ it as an environment variable or set it directly on the module:
33
33
 
34
34
  ```python
35
35
  import os
36
+
36
37
  os.environ["ROWAN_API_KEY"] # picked up automatically, or...
37
38
 
38
39
  import rowan
40
+
39
41
  rowan.api_key = "rowan-sk..."
40
42
  ```
41
43
 
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -0,0 +1,11 @@
1
+ # Protein preparation
2
+
3
+ ::: rowan.workflows.protein_preparation
4
+ handler: python
5
+ options:
6
+ show_source: false
7
+ show_root_heading: false
8
+ show_root_toc_entry: false
9
+ members_order: source
10
+ group_by_category: true
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -8,4 +8,4 @@
8
8
  show_root_toc_entry: false
9
9
  members_order: source
10
10
  group_by_category: true
11
- filters: ["!^__"]
11
+ filters: ["!^_"]
@@ -22,7 +22,7 @@ protein = rowan.upload_protein("1IEP receptor", data_dir / "1iep_receptorH.pdb")
22
22
  workflow = rowan.submit_analogue_docking_workflow(
23
23
  analogues=list(citalopram_analogues.values()),
24
24
  analogue_names=list(citalopram_analogues.keys()),
25
- protein=protein,
25
+ protein=protein.uuid,
26
26
  initial_molecule=bound_pose,
27
27
  folder=folder,
28
28
  )
@@ -12,15 +12,17 @@ ligands = [
12
12
  "CCC(C)CN=C1NC=C2CCC(O)CC2=N1",
13
13
  ]
14
14
 
15
- protein = rowan.create_protein_from_pdb_id(
16
- "1HCK", name="CDK2", project_uuid=rowan.default_project().uuid
15
+ protein = rowan.create_protein_from_pdb_id("1HCK", name="CDK2")
16
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
17
+ protein=protein.uuid,
18
+ name="Prepare CDK2",
19
+ folder=folder,
17
20
  )
18
-
19
- protein.prepare()
21
+ prepared_protein_uuid = preparation_workflow.result().prepared_protein_uuid
20
22
 
21
23
  workflow = rowan.submit_batch_docking_workflow(
22
24
  ligands,
23
- protein.uuid,
25
+ prepared_protein_uuid,
24
26
  pocket=[[103.55, 100.59, 82.99], [27.76, 32.67, 48.79]],
25
27
  executable="qvina2",
26
28
  scoring_function="vina",
@@ -0,0 +1,21 @@
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
+ smileses = ["CCO", "CC(=O)O", "c1ccccc1"]
8
+ workflows = rowan.submit_solubility_workflow_group(
9
+ initial_smileses=smileses,
10
+ method="kingfisher",
11
+ solvents=["water"],
12
+ temperatures=[298.15],
13
+ names=["Ethanol", "Acetic acid", "Benzene"],
14
+ folder=folder,
15
+ )
16
+
17
+ for workflow in workflows:
18
+ print(f"View workflow privately at: https://labs.rowansci.com/solubility/{workflow.uuid}")
19
+
20
+ results = [workflow.result() for workflow in workflows]
21
+ print(results)
@@ -12,7 +12,7 @@ all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
12
12
  ligands = dict(list(all_ligands.items())[:3])
13
13
 
14
14
  workflow = rowan.submit_binding_affinity_workflow(
15
- protein=protein,
15
+ protein=protein.uuid,
16
16
  ligand_structures=list(ligands.values()),
17
17
  name="Binding Affinity — TYK2 ligands",
18
18
  folder=folder,
@@ -13,17 +13,33 @@ protein = rowan.create_protein_from_pdb_id("2Q3Z")
13
13
  # Chain A is TG2; chain X is a small covalently-bound peptide in the crystal, not
14
14
  # part of the protein. `protein.chains` order isn't guaranteed, so select by name.
15
15
  protein = protein.select_chains(["A"])
16
- protein.prepare()
16
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
17
+ protein=protein.uuid,
18
+ name="Prepare TG2",
19
+ folder=folder,
20
+ )
21
+ protein = preparation_workflow.result().get_prepared_protein()
17
22
 
18
23
  # Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
19
24
  center = [-1.079, -3.081, 18.122]
20
25
  size = [22.22, 14.08, 21.74]
21
26
 
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.
27
+ # 0-based, all-atom (including hydrogens) indices of the reacting atoms. The ligand's
28
+ # acrylamide terminal =CH2 carbon is atom 0. Locate Cys277 SG from the prepared structure
29
+ # so the protein index remains correct if preparation changes atom ordering.
25
30
  covalent_ligand_atom_index = 0
26
- covalent_protein_atom_index = 4293
31
+ model = protein.data["models"][0]
32
+ cys277 = model["polymer"]["A"]["residues"]["A.277"]
33
+ cys277_sg_serial = next(
34
+ int(serial) for serial, atom in cys277["atoms"].items() if atom["name"] == "SG"
35
+ )
36
+ entities = [
37
+ residue for chain in model["polymer"].values() for residue in chain["residues"].values()
38
+ ]
39
+ for section in ("non_polymer", "water", "branched"):
40
+ entities.extend(model.get(section, {}).values())
41
+ atom_serials = sorted(int(serial) for entity in entities for serial in entity.get("atoms", {}))
42
+ covalent_protein_atom_index = atom_serials.index(cys277_sg_serial)
27
43
  gnina_settings = rowan.GninaSettings(
28
44
  scoring_function="gnina_cnn",
29
45
  covalent_ligand_atom_index=covalent_ligand_atom_index,
@@ -31,7 +47,7 @@ gnina_settings = rowan.GninaSettings(
31
47
  )
32
48
 
33
49
  workflow = rowan.submit_docking_workflow(
34
- protein,
50
+ protein.uuid,
35
51
  pocket=[center, size],
36
52
  initial_molecule=tg2_inhibitor,
37
53
  docking_settings=gnina_settings,
@@ -0,0 +1,59 @@
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
+ # Locate Cys481 SG and the 4C9 ligand's C1 atom in the prepared structure, then convert
22
+ # their atom serials to zero-based PDB record indices.
23
+ model = protein.data["models"][0]
24
+ cys481 = model["polymer"]["A"]["residues"]["A.481"]
25
+ ligand_4c9 = next(residue for residue in model["non_polymer"].values() if residue["name"] == "4C9")
26
+ protein_atom_serial = next(
27
+ int(serial) for serial, atom in cys481["atoms"].items() if atom["name"] == "SG"
28
+ )
29
+ ligand_atom_serial = next(
30
+ int(serial) for serial, atom in ligand_4c9["atoms"].items() if atom["name"] == "C1"
31
+ )
32
+ entities = [
33
+ residue for chain in model["polymer"].values() for residue in chain["residues"].values()
34
+ ]
35
+ for section in ("non_polymer", "water", "branched"):
36
+ entities.extend(model.get(section, {}).values())
37
+ atom_serials = sorted(int(serial) for entity in entities for serial in entity.get("atoms", {}))
38
+ protein_reactive_atom_index = atom_serials.index(protein_atom_serial)
39
+ ligand_reactive_atom_index = atom_serials.index(ligand_atom_serial)
40
+
41
+ workflow = rowan.submit_covalent_inhibitor_scan_workflow(
42
+ protein=protein.uuid,
43
+ protein_reactive_atom_index=protein_reactive_atom_index,
44
+ ligand_reactive_atom_index=ligand_reactive_atom_index,
45
+ ligand_smiles=ligand_smiles,
46
+ settings=rowan.CovalentInhibitorScanSettings(scan_num=4),
47
+ name="BTK covalent inhibitor scan (Cys481, 4YHF)",
48
+ folder=folder,
49
+ )
50
+
51
+ print(
52
+ f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
53
+ )
54
+
55
+ result = workflow.result()
56
+ print(result)
57
+
58
+ for distance, energy in result.get_energies():
59
+ print(f" distance={distance:.3f} Å energy={energy}")
@@ -8,9 +8,13 @@ folder = rowan.get_folder("examples")
8
8
  dasatinib = rowan.Molecule.from_smiles("Cc1nc(Nc2ncc(C(=O)Nc3c(C)cccc3Cl)s2)cc(N2CCN(CCO)CC2)n1")
9
9
 
10
10
  protein = rowan.create_protein_from_pdb_id("2GQG")
11
- if len(protein.chains) > 1:
12
- protein = protein.select_chains([protein.chains[0]])
13
- protein.prepare()
11
+ protein = protein.select_chains(["A"])
12
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
13
+ protein=protein.uuid,
14
+ name="Prepare ABL1",
15
+ folder=folder,
16
+ )
17
+ prepared_protein_uuid = preparation_workflow.result().prepared_protein_uuid
14
18
 
15
19
  # Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
16
20
  # For a co-crystal structure, extract these from the bound ligand's position.
@@ -18,7 +22,7 @@ protein.prepare()
18
22
  center = [44.59, 79.75, 39.59]
19
23
  size = [24.15, 21.33, 19.88]
20
24
  workflow = rowan.submit_docking_workflow(
21
- protein,
25
+ prepared_protein_uuid,
22
26
  pocket=[center, size],
23
27
  initial_molecule=dasatinib,
24
28
  name="dasatinib docking (2GQG redock)",