rowan-python 3.1.13__tar.gz → 3.1.15__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 (275) hide show
  1. {rowan_python-3.1.13 → rowan_python-3.1.15}/PKG-INFO +2 -2
  2. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/analogue-docking.md +3 -0
  3. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/batch-docking.md +4 -0
  4. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/covalent-inhibitor-scan.md +4 -0
  5. rowan_python-3.1.15/docs/workflows/docking.md +60 -0
  6. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/logp.md +3 -0
  7. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/macropka.md +2 -0
  8. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/nmr.md +3 -0
  9. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/pose-analysis-md.md +3 -0
  10. rowan_python-3.1.15/docs/workflows/protein-md.md +19 -0
  11. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/solvent-dependent-conformers.md +3 -0
  12. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/tautomer-search.md +3 -0
  13. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/binding_affinity.py +5 -1
  14. rowan_python-3.1.15/examples/covalent_docking.py +44 -0
  15. rowan_python-3.1.15/examples/covalent_inhibitor_scan.py +45 -0
  16. rowan_python-3.1.15/examples/induced_fit_docking.py +61 -0
  17. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/nmr.py +4 -0
  18. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/pose_analysis_md.py +6 -2
  19. rowan_python-3.1.15/examples/protein_cofolding_modified_inputs.py +44 -0
  20. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_md.py +4 -0
  21. rowan_python-3.1.15/examples/temporary_workflow_sharing.py +19 -0
  22. {rowan_python-3.1.13 → rowan_python-3.1.15}/pixi.lock +322 -277
  23. {rowan_python-3.1.13 → rowan_python-3.1.15}/pyproject.toml +2 -2
  24. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/__init__.py +13 -2
  25. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/protein.py +33 -3
  26. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/__init__.py +8 -1
  27. rowan_python-3.1.15/rowan/workflows/_molecular_dynamics.py +219 -0
  28. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/analogue_docking.py +1 -4
  29. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/base.py +77 -4
  30. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/batch_docking.py +31 -0
  31. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/binding_affinity.py +43 -22
  32. rowan_python-3.1.15/rowan/workflows/covalent_inhibitor_scan.py +175 -0
  33. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/docking.py +72 -5
  34. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/macropka.py +4 -0
  35. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/nmr.py +38 -0
  36. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/pose_analysis_md.py +48 -85
  37. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/protein_cofolding.py +24 -7
  38. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/protein_md.py +71 -84
  39. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/relative_binding_free_energy_perturbation.py +5 -3
  40. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/solvent_dependent_conformers.py +13 -0
  41. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/tautomer_search.py +13 -2
  42. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/SKILL.md +1 -1
  43. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/analogue_docking.md +5 -6
  44. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/batch_docking.md +8 -0
  45. rowan_python-3.1.15/skills/computational-chemistry-and-biology/reference/binding_affinity.md +89 -0
  46. rowan_python-3.1.15/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +60 -0
  47. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/docking.md +72 -5
  48. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/macropka.md +3 -1
  49. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/nmr.md +8 -0
  50. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/pose_analysis_md.md +10 -4
  51. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/protein_cofolding.md +12 -5
  52. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/protein_md.md +12 -5
  53. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/protein_preparation.md +2 -2
  54. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/python_sdk.md +20 -0
  55. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/relative_binding_free_energy_perturbation.md +1 -1
  56. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/solvent_dependent_conformers.md +3 -1
  57. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/tautomer_search.md +2 -0
  58. rowan_python-3.1.15/tests/test_binding_affinity.py +124 -0
  59. rowan_python-3.1.15/tests/test_cofolding_workflow_updates.py +121 -0
  60. rowan_python-3.1.15/tests/test_docking_workflow.py +150 -0
  61. rowan_python-3.1.15/tests/test_docking_workflow_updates.py +117 -0
  62. rowan_python-3.1.15/tests/test_macropka_nmr.py +93 -0
  63. rowan_python-3.1.15/tests/test_mango_forcefields.py +120 -0
  64. rowan_python-3.1.15/tests/test_md_workflow_updates.py +322 -0
  65. rowan_python-3.1.15/tests/test_protein.py +39 -0
  66. rowan_python-3.1.15/tests/test_solvent_dependent_conformers.py +87 -0
  67. rowan_python-3.1.15/tests/test_tautomer_search.py +51 -0
  68. {rowan_python-3.1.13 → rowan_python-3.1.15}/tests/test_workflow_submission.py +76 -0
  69. rowan_python-3.1.13/docs/workflows/docking.md +0 -11
  70. rowan_python-3.1.13/docs/workflows/protein-md.md +0 -11
  71. rowan_python-3.1.13/examples/covalent_docking.py +0 -64
  72. rowan_python-3.1.13/examples/covalent_inhibitor_scan.py +0 -59
  73. rowan_python-3.1.13/rowan/workflows/covalent_inhibitor_scan.py +0 -130
  74. rowan_python-3.1.13/skills/computational-chemistry-and-biology/reference/binding_affinity.md +0 -61
  75. rowan_python-3.1.13/skills/computational-chemistry-and-biology/reference/covalent_inhibitor_scan.md +0 -50
  76. {rowan_python-3.1.13 → rowan_python-3.1.15}/.agents/plugins/marketplace.json +0 -0
  77. {rowan_python-3.1.13 → rowan_python-3.1.15}/.claude-plugin/marketplace.json +0 -0
  78. {rowan_python-3.1.13 → rowan_python-3.1.15}/.codex-plugin/plugin.json +0 -0
  79. {rowan_python-3.1.13 → rowan_python-3.1.15}/.envrc +0 -0
  80. {rowan_python-3.1.13 → rowan_python-3.1.15}/.github/workflows/build-and-deploy-docs.yml +0 -0
  81. {rowan_python-3.1.13 → rowan_python-3.1.15}/.github/workflows/publish-skill.yml +0 -0
  82. {rowan_python-3.1.13 → rowan_python-3.1.15}/.github/workflows/python-publish.yml +0 -0
  83. {rowan_python-3.1.13 → rowan_python-3.1.15}/.github/workflows/test.yml +0 -0
  84. {rowan_python-3.1.13 → rowan_python-3.1.15}/.gitignore +0 -0
  85. {rowan_python-3.1.13 → rowan_python-3.1.15}/.pre-commit-config.yaml +0 -0
  86. {rowan_python-3.1.13 → rowan_python-3.1.15}/AGENTS.md +0 -0
  87. {rowan_python-3.1.13 → rowan_python-3.1.15}/CLAUDE.md +0 -0
  88. {rowan_python-3.1.13 → rowan_python-3.1.15}/GEMINI.md +0 -0
  89. {rowan_python-3.1.13 → rowan_python-3.1.15}/LICENSE +0 -0
  90. {rowan_python-3.1.13 → rowan_python-3.1.15}/README.md +0 -0
  91. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/api-keys.md +0 -0
  92. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/calculation.md +0 -0
  93. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/folder.md +0 -0
  94. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/molecule.md +0 -0
  95. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/project.md +0 -0
  96. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/protein.md +0 -0
  97. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/user.md +0 -0
  98. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/webhooks.md +0 -0
  99. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/api/workflow.md +0 -0
  100. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/images/RowanLogoLarge.png +0 -0
  101. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/images/RowanSquareLogo.png +0 -0
  102. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/images/favicon.svg +0 -0
  103. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/index.md +0 -0
  104. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/stylesheets/colors.css +0 -0
  105. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/admet.md +0 -0
  106. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/basic-calculation.md +0 -0
  107. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/binding-affinity.md +0 -0
  108. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/bond-dissociation-energy.md +0 -0
  109. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/conformer-search-settings.md +0 -0
  110. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/conformer-search.md +0 -0
  111. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/descriptors.md +0 -0
  112. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/double-ended-ts-search.md +0 -0
  113. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/electronic-properties.md +0 -0
  114. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/fukui.md +0 -0
  115. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/hydrogen-bond-donor-acceptor-strength.md +0 -0
  116. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/interaction-energy-decomposition.md +0 -0
  117. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/ion-mobility.md +0 -0
  118. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/irc.md +0 -0
  119. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/membrane-permeability.md +0 -0
  120. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/msa.md +0 -0
  121. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/multistage-optimization.md +0 -0
  122. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/pka.md +0 -0
  123. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/pocket-detection.md +0 -0
  124. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/protein-binder-design.md +0 -0
  125. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/protein-cofolding.md +0 -0
  126. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/protein-preparation.md +0 -0
  127. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/rbfe-graph.md +0 -0
  128. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/redox-potential.md +0 -0
  129. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/relative-binding-free-energy-perturbation.md +0 -0
  130. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/scan.md +0 -0
  131. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/settings.md +0 -0
  132. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/solubility.md +0 -0
  133. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/spin-states.md +0 -0
  134. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/strain.md +0 -0
  135. {rowan_python-3.1.13 → rowan_python-3.1.15}/docs/workflows/types.md +0 -0
  136. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/PROTAC_solubility.py +0 -0
  137. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/admet.py +0 -0
  138. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/analogue_docking.py +0 -0
  139. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/aqueous_solubility.py +0 -0
  140. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/basic_calculation.py +0 -0
  141. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/basic_calculation_from_json.py +0 -0
  142. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/basic_calculation_with_constraint.py +0 -0
  143. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/basic_calculation_with_solvent.py +0 -0
  144. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/batch_docking.py +0 -0
  145. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/batch_solubility.py +0 -0
  146. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/bde.py +0 -0
  147. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/boltz_paired_msa.py +0 -0
  148. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/boltz_single_msa.py +0 -0
  149. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/chai_paired_msa.py +0 -0
  150. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/chai_single_msa.py +0 -0
  151. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/cofolding_screen.py +0 -0
  152. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/colabfold_paired_msa.py +0 -0
  153. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/colabfold_single_msa.py +0 -0
  154. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/conformer_dependent_redox.py +0 -0
  155. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/conformers.py +0 -0
  156. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/conformers_screen.py +0 -0
  157. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/1iep_receptorH.pdb +0 -0
  158. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/Al_FCC.xyz +0 -0
  159. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/citalopram_1iep.xyz +0 -0
  160. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/ibuprofen_conformers.sdf +0 -0
  161. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/tyk2_ligands.sdf +0 -0
  162. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/tyk2_structure.pdb +0 -0
  163. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/data/workflow_example.json +0 -0
  164. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/dcd_download.py +0 -0
  165. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/descriptors.py +0 -0
  166. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/docking.py +0 -0
  167. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/docking_screen.py +0 -0
  168. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/double_ended_ts_search.py +0 -0
  169. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/electronic_properties.py +0 -0
  170. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/estimate_workflow.py +0 -0
  171. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/fukui_index.py +0 -0
  172. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/hydrogen_bond_basicity.py +0 -0
  173. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/interaction_energy_decomposition.py +0 -0
  174. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/ion_mobility.py +0 -0
  175. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/irc.py +0 -0
  176. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/logp.py +0 -0
  177. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/macropka.py +0 -0
  178. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/membrane_permeability.py +0 -0
  179. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/multistage_optimization.py +0 -0
  180. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/optimization.py +0 -0
  181. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/pdb_download.py +0 -0
  182. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/periodic_dft.py +0 -0
  183. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/phenol_pka.py +0 -0
  184. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/pka.py +0 -0
  185. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/pocket_detection.py +0 -0
  186. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/project_scoped_api_key.py +0 -0
  187. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_binder_design.py +0 -0
  188. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_cofolding.py +0 -0
  189. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_cofolding_with_constraints.py +0 -0
  190. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_cofolding_with_templates.py +0 -0
  191. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/protein_preparation.py +0 -0
  192. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/rbfe_graph.py +0 -0
  193. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/rbfe_resubmit.py +0 -0
  194. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/redox_potential.py +0 -0
  195. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/relative_binding_free_energy_perturbation.py +0 -0
  196. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/resubmit_with_perturbations.py +0 -0
  197. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/retrieve_workflow.py +0 -0
  198. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/scan.py +0 -0
  199. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/solvent_dependent_conformers.py +0 -0
  200. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/spin_states.py +0 -0
  201. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/strain.py +0 -0
  202. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/tautomer.py +0 -0
  203. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/template.py +0 -0
  204. {rowan_python-3.1.13 → rowan_python-3.1.15}/examples/webhook.py +0 -0
  205. {rowan_python-3.1.13 → rowan_python-3.1.15}/mkdocs.yml +0 -0
  206. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/api_keys.py +0 -0
  207. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/calculation.py +0 -0
  208. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/config.py +0 -0
  209. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/constants.py +0 -0
  210. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/folder.py +0 -0
  211. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/molecule.py +0 -0
  212. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/project.py +0 -0
  213. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/py.typed +0 -0
  214. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/types.py +0 -0
  215. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/user.py +0 -0
  216. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/utils.py +0 -0
  217. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/admet.py +0 -0
  218. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/basic_calculation.py +0 -0
  219. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/bde.py +0 -0
  220. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/conformer_search.py +0 -0
  221. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/constants.py +0 -0
  222. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/descriptors.py +0 -0
  223. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/double_ended_ts_search.py +0 -0
  224. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/electronic_properties.py +0 -0
  225. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/fukui.py +0 -0
  226. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  227. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  228. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/ion_mobility.py +0 -0
  229. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/irc.py +0 -0
  230. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/logp.py +0 -0
  231. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/membrane_permeability.py +0 -0
  232. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/msa.py +0 -0
  233. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/multistage_optimization.py +0 -0
  234. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/pka.py +0 -0
  235. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/pocket_detection.py +0 -0
  236. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/protein_binder_design.py +0 -0
  237. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/protein_preparation.py +0 -0
  238. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/rbfe_graph.py +0 -0
  239. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/redox_potential.py +0 -0
  240. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/scan.py +0 -0
  241. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/solubility.py +0 -0
  242. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/spin_states.py +0 -0
  243. {rowan_python-3.1.13 → rowan_python-3.1.15}/rowan/workflows/strain.py +0 -0
  244. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/.claude-plugin/plugin.json +0 -0
  245. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/admet.md +0 -0
  246. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/basic_calculation.md +0 -0
  247. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/bde.md +0 -0
  248. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/conformer_search.md +0 -0
  249. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/descriptors.md +0 -0
  250. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/double_ended_ts_search.md +0 -0
  251. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/electronic_properties.md +0 -0
  252. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/folders_and_projects.md +0 -0
  253. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/fukui.md +0 -0
  254. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/hydrogen_bond_donor_acceptor_strength.md +0 -0
  255. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/interaction_energy_decomposition.md +0 -0
  256. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/ion_mobility.md +0 -0
  257. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/irc.md +0 -0
  258. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/logp.md +0 -0
  259. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/mcp_execution.md +0 -0
  260. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/membrane_permeability.md +0 -0
  261. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/msa.md +0 -0
  262. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/multistage_optimization.md +0 -0
  263. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/pka.md +0 -0
  264. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/pocket_detection.md +0 -0
  265. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/protein_binder_design.md +0 -0
  266. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/rbfe_graph.md +0 -0
  267. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/redox_potential.md +0 -0
  268. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/scan.md +0 -0
  269. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/solubility.md +0 -0
  270. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/spin_states.md +0 -0
  271. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/strain.md +0 -0
  272. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/reference/webhooks.md +0 -0
  273. {rowan_python-3.1.13 → rowan_python-3.1.15}/skills/computational-chemistry-and-biology/scripts/check_env.py +0 -0
  274. {rowan_python-3.1.13 → rowan_python-3.1.15}/tests/test_plugin.py +0 -0
  275. {rowan_python-3.1.13 → rowan_python-3.1.15}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: rowan-python
3
- Version: 3.1.13
3
+ Version: 3.1.15
4
4
  Summary: Rowan Python Library
5
5
  Project-URL: Homepage, https://github.com/rowansci/rowan-client
6
6
  Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
@@ -11,7 +11,7 @@ Requires-Dist: httpx
11
11
  Requires-Dist: nest-asyncio
12
12
  Requires-Dist: rdkit
13
13
  Requires-Dist: setuptools
14
- Requires-Dist: stjames<0.0.238,>=0.0.237
14
+ Requires-Dist: stjames>=0.0.261
15
15
  Description-Content-Type: text/markdown
16
16
 
17
17
  # Rowan Python Library
@@ -1,5 +1,8 @@
1
1
  # Analogue Docking
2
2
 
3
+ Analogue docking generates at most 20 conformers per analogue by default. Override
4
+ `num_conformers_per_analogue` when a broader search is needed.
5
+
3
6
  ::: rowan.workflows.analogue_docking
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,9 @@
1
1
  # Batch Docking
2
2
 
3
+ Use `num_poses_to_save` to retain the best pose for that many top-scoring compounds, and set
4
+ `run_mmgbsa=True` to refine those saved poses. `result.refined_scores` maps every input SMILES
5
+ to a `DockingScore` for a retained compound or `None` otherwise.
6
+
3
7
  ::: rowan.workflows.batch_docking
4
8
  handler: python
5
9
  options:
@@ -1,5 +1,9 @@
1
1
  # Covalent Inhibitor Scan
2
2
 
3
+ !!! warning "Beta"
4
+
5
+ This workflow is in beta. Its interface and behavior may change.
6
+
3
7
  ::: rowan.workflows.covalent_inhibitor_scan
4
8
  handler: python
5
9
  options:
@@ -0,0 +1,60 @@
1
+ # Docking
2
+
3
+ The docking workflow supports Vina docking and both noncovalent and covalent gnina docking.
4
+ Passing `GninaSettings` selects gnina; it does not by itself enable covalent docking.
5
+
6
+ ## Induced-fit docking
7
+
8
+ Pass `rowan.InducedFitSettings()` to `induced_fit_settings` when nearby receptor side chains may
9
+ need to relax around the ligand. Induced fit requires Vina or QVina2 and adds substantial work
10
+ beyond rigid docking.
11
+
12
+ Results contain both rigid and induced-receptor poses ranked by `induced_fit_score`. Use
13
+ `get_induced_receptor()` or `get_induced_receptors()` to retrieve the relaxed receptors associated
14
+ with induced poses. See `examples/induced_fit_docking.py` for a complete example.
15
+
16
+ ## Covalent docking
17
+
18
+ Set both covalent atom indices on `GninaSettings` to form a bond between a known ligand atom and
19
+ protein atom. Covalent gnina docking requires `scoring_function="vina"`.
20
+
21
+ Prepare the protein first, then resolve the reactive protein atom from the prepared structure.
22
+ Protein preparation can change atom ordering and residue numbering.
23
+
24
+ Supply the ligand in its expected post-reaction, covalently bound topology; gnina does not infer the
25
+ reaction. For a Michael acceptor `C=CC(=O)NR`, use the hydrogen-capped product `CCC(=O)NR` and
26
+ select the terminal β-carbon as the covalent ligand atom.
27
+
28
+ ```python
29
+ prepared_protein = preparation_workflow.result().get_prepared_protein()
30
+ reactive_protein_atom_index = prepared_protein.get_atom_index(
31
+ chain="A", residue=reactive_residue, atom="SG"
32
+ )
33
+ settings = rowan.GninaSettings(
34
+ scoring_function="vina",
35
+ covalent_ligand_atom_index=reactive_ligand_atom_index,
36
+ covalent_protein_atom_index=reactive_protein_atom_index,
37
+ )
38
+ workflow = rowan.submit_docking_workflow(
39
+ prepared_protein.uuid,
40
+ pocket=[center, size],
41
+ initial_molecule=ligand,
42
+ docking_settings=settings,
43
+ )
44
+ ```
45
+
46
+ Both indices are zero-based all-atom indices, including hydrogens. See
47
+ `examples/covalent_docking.py` for a complete TG2 example.
48
+
49
+ PoseBusters validation is skipped for covalent poses. Their `posebusters_valid` value is `None`,
50
+ meaning not evaluated rather than failed; do not use it to reject covalent poses.
51
+
52
+ ::: rowan.workflows.docking
53
+ handler: python
54
+ options:
55
+ show_source: false
56
+ show_root_heading: false
57
+ show_root_toc_entry: false
58
+ members_order: source
59
+ group_by_category: true
60
+ filters: ["!^_"]
@@ -1,5 +1,8 @@
1
1
  # LogP
2
2
 
3
+ Available methods include the default Chemprop model, Crippen, and the higher-cost
4
+ `method="cosmors"` conformer-ensemble calculation.
5
+
3
6
  ::: rowan.workflows.logp
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,7 @@
1
1
  # MacropKa
2
2
 
3
+ Choose `method="starling"` (default) or `method="starling_ii"` when submitting the workflow.
4
+
3
5
  ::: rowan.workflows.macropka
4
6
  handler: python
5
7
  options:
@@ -1,5 +1,8 @@
1
1
  # NMR
2
2
 
3
+ Completed results expose both chemical shifts and typed J-coupling predictions through
4
+ `result.predicted_couplings`.
5
+
3
6
  ::: rowan.workflows.nmr
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,8 @@
1
1
  # Pose Analysis MD
2
2
 
3
+ Pose-analysis MD accepts selectable small-molecule, protein, and water force fields. Mean and
4
+ medoid structures are available through the same result helpers as protein MD.
5
+
3
6
  ::: rowan.workflows.pose_analysis_md
4
7
  handler: python
5
8
  options:
@@ -0,0 +1,19 @@
1
+ # Protein MD
2
+
3
+ Protein MD accepts selectable small-molecule, protein, and water force fields. Results expose
4
+ binder RMSD, MM/GBSA scores, mean-structure UUIDs, and medoid frame indices per trajectory. Use
5
+ `get_mean_structure`, `download_mean_structure`, or `download_medoid_structure` to retrieve
6
+ representative structures.
7
+
8
+ For protein structures containing non-polymer ligands, pass their SMILES through
9
+ `small_molecules` and select the residues to analyze through `rowan.Binder`.
10
+
11
+ ::: rowan.workflows.protein_md
12
+ handler: python
13
+ options:
14
+ show_source: false
15
+ show_root_heading: false
16
+ show_root_toc_entry: false
17
+ members_order: source
18
+ group_by_category: true
19
+ filters: ["!^_"]
@@ -1,5 +1,8 @@
1
1
  # Solvent-Dependent Conformers
2
2
 
3
+ The default final correction is `"CPCMX"`. Pass `final_correction="COSMO_RS"` for the
4
+ higher-cost COSMO-RS alternative.
5
+
3
6
  ::: rowan.workflows.solvent_dependent_conformers
4
7
  handler: python
5
8
  options:
@@ -1,5 +1,8 @@
1
1
  # Tautomer Search
2
2
 
3
+ Pass `final_correction="COSMO_RS"` to enable the optional higher-cost COSMO-RS correction.
4
+ The default is no final correction.
5
+
3
6
  ::: rowan.workflows.tautomer_search
4
7
  handler: python
5
8
  options:
@@ -11,6 +11,7 @@ protein = rowan.upload_protein("TYK2", data_dir / "tyk2_structure.pdb")
11
11
  all_ligands = rowan.load_named_ligands(data_dir / "tyk2_ligands.sdf")
12
12
  ligands = dict(list(all_ligands.items())[:3])
13
13
 
14
+ # SQM-based scoring (default): binding_affinity in kcal/mol.
14
15
  workflow = rowan.submit_binding_affinity_workflow(
15
16
  protein=protein.uuid,
16
17
  ligand_structures=list(ligands.values()),
@@ -21,4 +22,7 @@ print(f"View at: https://labs.rowansci.com/binding-affinity/{workflow.uuid}")
21
22
 
22
23
  result = workflow.result()
23
24
  for name, score in zip(ligands.keys(), result.scores, strict=False):
24
- print(f"{name}: {score.binding_affinity:.2f} kcal/mol (strain: {score.strain})")
25
+ if score is None:
26
+ print(f"{name}: scoring failed")
27
+ continue
28
+ print(f"{name}: {score.binding_affinity:.2f} kcal/mol")
@@ -0,0 +1,44 @@
1
+ import rowan
2
+
3
+ folder = rowan.get_folder("examples")
4
+
5
+ tg2_inhibitor = rowan.Molecule.from_smiles(
6
+ "CCC(=O)NCCCC[C@H](NC(=O)Cc1ccc(Cl)c(Cl)c1)C(=O)N1CCN(C(=O)c2cccc3ccccc23)CC1"
7
+ )
8
+
9
+ protein = rowan.create_protein_from_pdb_id("2Q3Z")
10
+ protein = protein.select_chains(["A"])
11
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
12
+ protein=protein.uuid,
13
+ name="Prepare TG2",
14
+ folder=folder,
15
+ )
16
+ protein = preparation_workflow.result().get_prepared_protein()
17
+
18
+ center = [-1.079, -3.081, 18.122]
19
+ size = [22.22, 14.08, 21.74]
20
+
21
+ # Protein preparation renumbers Cys277 to residue 278.
22
+ cys277_sg_index = protein.get_atom_index(chain="A", residue=278, atom="SG")
23
+ gnina_settings = rowan.GninaSettings(
24
+ scoring_function="vina",
25
+ covalent_ligand_atom_index=0,
26
+ covalent_protein_atom_index=cys277_sg_index,
27
+ )
28
+
29
+ workflow = rowan.submit_docking_workflow(
30
+ protein.uuid,
31
+ pocket=[center, size],
32
+ initial_molecule=tg2_inhibitor,
33
+ docking_settings=gnina_settings,
34
+ name="TG2 covalent docking (Cys277, 2Q3Z)",
35
+ folder=folder,
36
+ )
37
+
38
+ print(f"View workflow privately at: https://labs.rowansci.com/docking/{workflow.uuid}")
39
+
40
+ result = workflow.result()
41
+ print(result)
42
+
43
+ for i, score in enumerate(result.scores):
44
+ print(f" Pose {i}: score={score.score:.3f}")
@@ -0,0 +1,45 @@
1
+ import rowan
2
+
3
+ # Set your API key or use the ROWAN_API_KEY environment variable
4
+ # rowan.api_key = "rowan-sk..."
5
+ folder = rowan.get_folder("examples")
6
+
7
+ # BTK, catalytic Cys481. 4YHF already has a covalently-bound small-molecule inhibitor
8
+ # (residue 4C9) linked to Cys481 SG via the ligand's C1 atom.
9
+ ligand_smiles = "CC(C)(C)C[C@@H](C#N)C(=O)N1CCC[C@H](C1)n2nc(c3ccc(Oc4ccccc4)cc3)c5c(N)ncnc25"
10
+
11
+ protein = rowan.create_protein_from_pdb_id("4YHF")
12
+ protein = protein.select_chains(["A"])
13
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
14
+ protein=protein.uuid,
15
+ retain_non_polymer={"4C9": ligand_smiles},
16
+ name="Prepare BTK inhibitor complex",
17
+ folder=folder,
18
+ )
19
+ protein = preparation_workflow.result().get_prepared_protein()
20
+
21
+ # Protein preparation normalizes 4YHF's residue numbering: Cys481 becomes residue 101,
22
+ # while the retained 4C9 ligand remains residue 701.
23
+ protein_reactive_atom_index = protein.get_atom_index(chain="A", residue=101, atom="SG")
24
+ ligand_reactive_atom_index = protein.get_atom_index(
25
+ chain="A", residue=701, atom="C1", entity_type="non_polymer"
26
+ )
27
+
28
+ workflow = rowan.submit_covalent_inhibitor_scan_workflow(
29
+ protein=protein.uuid,
30
+ protein_reactive_atom_index=protein_reactive_atom_index,
31
+ ligand_reactive_atom_index=ligand_reactive_atom_index,
32
+ reactant_smiles=ligand_smiles,
33
+ name="BTK covalent inhibitor scan (Cys481, 4YHF)",
34
+ folder=folder,
35
+ )
36
+
37
+ print(
38
+ f"View workflow privately at: https://labs.rowansci.com/covalent-inhibitor-scan/{workflow.uuid}"
39
+ )
40
+
41
+ result = workflow.result()
42
+ print(result)
43
+
44
+ for distance, free_energy in result.get_energies():
45
+ print(f" distance={distance:.3f} Å free_energy={free_energy} kcal/mol")
@@ -0,0 +1,61 @@
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
+ # Dasatinib — redocked into its own ABL1 co-crystal structure (PDB: 2GQG)
8
+ dasatinib = rowan.Molecule.from_smiles("Cc1nc(Nc2ncc(C(=O)Nc3c(C)cccc3Cl)s2)cc(N2CCN(CCO)CC2)n1")
9
+
10
+ protein = rowan.create_protein_from_pdb_id("2GQG")
11
+ protein = protein.select_chains(["A"])
12
+ preparation_workflow = rowan.submit_protein_preparation_workflow(
13
+ protein=protein.uuid,
14
+ add_missing_method="pdbfixer",
15
+ name="Prepare ABL1",
16
+ folder=folder,
17
+ )
18
+ prepared_protein_uuid = preparation_workflow.result().prepared_protein_uuid
19
+
20
+ # Pocket is [[center_x, center_y, center_z], [size_x, size_y, size_z]] in Å.
21
+ center = [44.59, 79.75, 39.59]
22
+ size = [24.15, 21.33, 19.88]
23
+
24
+ # Induced-fit docking soft-docks candidate poses, relaxes the receptor around each with
25
+ # restrained local minimization, and redocks into the relaxed receptor. It requires
26
+ # VinaSettings with executable="vina" or "qvina2" (the default is "vina").
27
+ induced_fit_settings = rowan.InducedFitSettings(
28
+ max_receptors=6,
29
+ flexible_sidechain_radius=5.0,
30
+ )
31
+
32
+ workflow = rowan.submit_docking_workflow(
33
+ prepared_protein_uuid,
34
+ pocket=[center, size],
35
+ initial_molecule=dasatinib,
36
+ induced_fit_settings=induced_fit_settings,
37
+ name="Dasatinib induced-fit docking",
38
+ folder=folder,
39
+ )
40
+
41
+ print(f"View workflow privately at: https://labs.rowansci.com/docking/{workflow.uuid}")
42
+
43
+ result = workflow.result()
44
+ print(result)
45
+
46
+ # With induced-fit docking, poses are ranked by induced_fit_score rather than raw docking score.
47
+ for i, score in enumerate(result.scores):
48
+ print(
49
+ f" Pose {i}: induced_fit_score={score.induced_fit_score:.3f} "
50
+ f"score={score.score:.3f} receptor_strain={score.receptor_strain}"
51
+ )
52
+
53
+ # Download the top-scoring complex and best-ranked relaxed receptor as PDBs
54
+ complex_protein = result.get_complex(0)
55
+ complex_protein.download_pdb_file(name="dasatinib_2GQG_induced_complex")
56
+ print("Saved dasatinib_2GQG_induced_complex.pdb")
57
+
58
+ induced_receptors = result.get_induced_receptors()
59
+ if induced_receptors:
60
+ induced_receptors[0].download_pdb_file(name="dasatinib_2GQG_induced_receptor")
61
+ print("Saved dasatinib_2GQG_induced_receptor.pdb")
@@ -15,3 +15,7 @@ result = workflow.result()
15
15
  # print hydrogen peaks (atomic number 1 = hydrogen)
16
16
  for peak in result.predicted_peaks[1]:
17
17
  print(peak)
18
+
19
+ # print predicted scalar J-couplings
20
+ for coupling in result.predicted_couplings:
21
+ print(coupling)
@@ -45,5 +45,9 @@ print(
45
45
  )
46
46
  md_result = md_workflow.result()
47
47
 
48
- # print ligand RMSD by frame
49
- print(md_result.trajectories[0].ligand_rmsd)
48
+ trajectory = md_result.trajectories[0]
49
+ print(f"Ligand RMSD: {trajectory.ligand_rmsd}")
50
+ print(f"Protein RMSD: {trajectory.protein_rmsd}")
51
+ print(f"Protein RMSF: {trajectory.rmsf}")
52
+ print(f"Potential energy: {trajectory.potential_energy} Hartree")
53
+ print(f"MM/GBSA scores: {trajectory.mmgbsa_scores} kcal/mol")
@@ -0,0 +1,44 @@
1
+ """Cofolding with modified polymers and a covalent bond constraint."""
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
+
9
+ protein = rowan.ProteinSequence(
10
+ sequence="ASA",
11
+ modifications=[rowan.ResidueModification(position=1, ccd="SEP")],
12
+ )
13
+ dna = rowan.DNASequence(
14
+ sequence="AC",
15
+ modifications=[rowan.NucleotideModification(position=1, ccd="5MC")],
16
+ )
17
+ rna = rowan.RNASequence(
18
+ sequence="AU",
19
+ modifications=[rowan.NucleotideModification(position=1, ccd="PSU")],
20
+ )
21
+
22
+ protein_atom = rowan.ConstraintTarget(
23
+ input_type="protein", input_index=0, token_index=1, atom_name="OG"
24
+ )
25
+ ligand_atom = rowan.ConstraintTarget(input_type="ligand", input_index=0, token_index=0)
26
+ covalent_bond = rowan.BondConstraint(atom_1=protein_atom, atom_2=ligand_atom)
27
+
28
+ workflow = rowan.submit_protein_cofolding_workflow(
29
+ initial_protein_sequences=[protein],
30
+ initial_dna_sequences=[dna],
31
+ initial_rna_sequences=[rna],
32
+ initial_smiles_list=["CBr"],
33
+ bond_constraints=[covalent_bond],
34
+ model=rowan.CofoldingModel.BOLTZ_2,
35
+ num_samples=1,
36
+ name="Modified polymers with covalent constraint",
37
+ folder=folder,
38
+ )
39
+
40
+ print(f"View workflow privately at: https://labs.rowansci.com/protein-cofolding/{workflow.uuid}")
41
+ result = workflow.result()
42
+ print(result)
43
+ for i, prediction in enumerate(result.predictions):
44
+ print(f" sample {i}: scores={prediction.scores}")
@@ -21,3 +21,7 @@ md_workflow = rowan.submit_protein_md_workflow(
21
21
  )
22
22
 
23
23
  print(f"View MD workflow privately at: https://labs.rowansci.com/protein-md/{md_workflow.uuid}")
24
+ trajectory = md_workflow.result().trajectories[0]
25
+ print(f"Protein RMSD: {trajectory.protein_rmsd}")
26
+ print(f"Protein RMSF: {trajectory.rmsf}")
27
+ print(f"Potential energy: {trajectory.potential_energy} Hartree")
@@ -0,0 +1,19 @@
1
+ """Example: temporarily share a workflow with anyone who has its link."""
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
+
8
+ workflow = rowan.retrieve_workflow("your-workflow-uuid")
9
+
10
+ # Temporary shares can last for up to 120 minutes. This does not make the workflow
11
+ # permanently public: `workflow.public` remains unchanged.
12
+ workflow = workflow.temporarily_share(duration_minutes=60)
13
+
14
+ print(f"Share URL: https://labs.rowansci.com/workflow/{workflow.uuid}")
15
+ print(f"Public until: {workflow.public_until}")
16
+ print(f"Temporary share active: {workflow.is_temporarily_public}")
17
+
18
+ # End access before the expiration time if needed.
19
+ # workflow = workflow.end_temporary_share()