rowan-python 3.0.3__tar.gz → 3.0.5__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 (128) hide show
  1. {rowan_python-3.0.3 → rowan_python-3.0.5}/PKG-INFO +1 -1
  2. rowan_python-3.0.5/examples/data/Al_FCC.xyz +3 -0
  3. rowan_python-3.0.5/examples/descriptors.py +25 -0
  4. rowan_python-3.0.5/examples/periodic_dft.py +58 -0
  5. rowan_python-3.0.5/examples/pka.py +69 -0
  6. {rowan_python-3.0.3 → rowan_python-3.0.5}/pixi.lock +150 -163
  7. {rowan_python-3.0.3 → rowan_python-3.0.5}/pyproject.toml +1 -1
  8. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/__init__.py +8 -0
  9. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/molecule.py +31 -0
  10. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/analogue_docking.py +9 -0
  11. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/basic_calculation.py +18 -0
  12. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/descriptors.py +19 -6
  13. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/pka.py +32 -17
  14. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/strain.py +15 -7
  15. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/tautomer_search.py +16 -6
  16. rowan_python-3.0.3/examples/pka.py +0 -43
  17. {rowan_python-3.0.3 → rowan_python-3.0.5}/.envrc +0 -0
  18. {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/build-and-deploy-docs.yml +0 -0
  19. {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/python-publish.yml +0 -0
  20. {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/test.yml +0 -0
  21. {rowan_python-3.0.3 → rowan_python-3.0.5}/.gitignore +0 -0
  22. {rowan_python-3.0.3 → rowan_python-3.0.5}/.pre-commit-config.yaml +0 -0
  23. {rowan_python-3.0.3 → rowan_python-3.0.5}/LICENSE +0 -0
  24. {rowan_python-3.0.3 → rowan_python-3.0.5}/README.md +0 -0
  25. {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/images/deciduous-tree-favicon.png +0 -0
  26. {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/index.md +0 -0
  27. {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/rowan_rdkit.md +0 -0
  28. {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/stylesheets/colors.css +0 -0
  29. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/PROTAC_solubility.py +0 -0
  30. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/admet.py +0 -0
  31. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/analogue_docking.py +0 -0
  32. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/aqueous_solubility.py +0 -0
  33. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation.py +0 -0
  34. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_from_json.py +0 -0
  35. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_with_constraint.py +0 -0
  36. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_with_solvent.py +0 -0
  37. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/batch_docking.py +0 -0
  38. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/bde.py +0 -0
  39. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/boltz_paired_msa.py +0 -0
  40. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/boltz_single_msa.py +0 -0
  41. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/chai_paired_msa.py +0 -0
  42. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/chai_single_msa.py +0 -0
  43. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/cofolding_screen.py +0 -0
  44. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/colabfold_paired_msa.py +0 -0
  45. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/colabfold_single_msa.py +0 -0
  46. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/conformer_dependent_redox.py +0 -0
  47. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/conformers.py +0 -0
  48. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/1iep_receptorH.pdb +0 -0
  49. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/citalopram_1iep.xyz +0 -0
  50. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/tyk2_ligands.sdf +0 -0
  51. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/tyk2_structure.pdb +0 -0
  52. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/workflow_example.json +0 -0
  53. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/dcd_download.py +0 -0
  54. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/docking_screen.py +0 -0
  55. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/double_ended_ts_search.py +0 -0
  56. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/electronic_properties.py +0 -0
  57. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/estimate_workflow.py +0 -0
  58. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/fukui_index.py +0 -0
  59. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/hydrogen_bond_basicity.py +0 -0
  60. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/interaction_energy_decomposition.py +0 -0
  61. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/ion_mobility.py +0 -0
  62. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/irc.py +0 -0
  63. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/macropka.py +0 -0
  64. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/membrane_permeability.py +0 -0
  65. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/multistage_optimization.py +0 -0
  66. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/nmr.py +0 -0
  67. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/optimization.py +0 -0
  68. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/pdb_download.py +0 -0
  69. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/phenol_pka.py +0 -0
  70. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/pose_analysis_md.py +0 -0
  71. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_binder_design.py +0 -0
  72. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_cofolding.py +0 -0
  73. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_md.py +0 -0
  74. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/rbfe_graph.py +0 -0
  75. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/redox_potential.py +0 -0
  76. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/relative_binding_free_energy_perturbation.py +0 -0
  77. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/retrieve_workflow.py +0 -0
  78. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/scan.py +0 -0
  79. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/solvent_dependent_conformers.py +0 -0
  80. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/spin_states.py +0 -0
  81. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/strain.py +0 -0
  82. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/tautomer.py +0 -0
  83. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/template.py +0 -0
  84. {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/webhook.py +0 -0
  85. {rowan_python-3.0.3 → rowan_python-3.0.5}/mkdocs.yml +0 -0
  86. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/calculation.py +0 -0
  87. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/config.py +0 -0
  88. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/constants.py +0 -0
  89. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/folder.py +0 -0
  90. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/project.py +0 -0
  91. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/protein.py +0 -0
  92. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/py.typed +0 -0
  93. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/rowan_rdkit/__init__.py +0 -0
  94. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/rowan_rdkit/chem_utils.py +0 -0
  95. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/types.py +0 -0
  96. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/user.py +0 -0
  97. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/utils.py +0 -0
  98. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/__init__.py +0 -0
  99. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/admet.py +0 -0
  100. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/base.py +0 -0
  101. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/batch_docking.py +0 -0
  102. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/bde.py +0 -0
  103. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/conformer_search.py +0 -0
  104. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/constants.py +0 -0
  105. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/docking.py +0 -0
  106. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/double_ended_ts_search.py +0 -0
  107. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/electronic_properties.py +0 -0
  108. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/fukui.py +0 -0
  109. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
  110. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/interaction_energy_decomposition.py +0 -0
  111. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/ion_mobility.py +0 -0
  112. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/irc.py +0 -0
  113. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/macropka.py +0 -0
  114. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/membrane_permeability.py +0 -0
  115. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/msa.py +0 -0
  116. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/multistage_optimization.py +0 -0
  117. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/nmr.py +0 -0
  118. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/pose_analysis_md.py +0 -0
  119. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_binder_design.py +0 -0
  120. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_cofolding.py +0 -0
  121. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_md.py +0 -0
  122. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/rbfe_graph.py +0 -0
  123. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/redox_potential.py +0 -0
  124. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
  125. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/scan.py +0 -0
  126. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/solubility.py +0 -0
  127. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/solvent_dependent_conformers.py +0 -0
  128. {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/spin_states.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.0.3
3
+ Version: 3.0.5
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
@@ -0,0 +1,3 @@
1
+ 1
2
+ Lattice="0.0 2.0230 2.0230 2.0230 0.0 2.0230 2.0230 2.0230 0.0" Properties=species:S:1:pos:R:3
3
+ Al 0.00000000 0.00000000 0.00000000
@@ -0,0 +1,25 @@
1
+ """
2
+ Calculate molecular descriptors using the Rowan API.
3
+
4
+ Computes molecular descriptors including COSMO descriptors (surface area,
5
+ screening charge, dielectric energy, polar surface area) in water by default.
6
+
7
+ See documentation at: https://docs.rowansci.com/science/workflows/descriptors
8
+ """
9
+
10
+ import rowan
11
+
12
+ # Set your API key or use the ROWAN_API_KEY environment variable
13
+ # rowan.api_key = "rowan-sk..."
14
+ folder = rowan.get_folder("examples")
15
+
16
+ workflow = rowan.submit_descriptors_workflow(
17
+ initial_molecule=rowan.Molecule.from_smiles("CC(=O)Oc1ccccc1C(=O)O"),
18
+ name="Aspirin Descriptors",
19
+ folder=folder,
20
+ )
21
+
22
+ print(f"View workflow privately at: https://labs.rowansci.com/descriptors/{workflow.uuid}")
23
+ result = workflow.result()
24
+ print(result)
25
+ # e.g. <DescriptorsResult n=1686>
@@ -0,0 +1,58 @@
1
+ """
2
+ Run a periodic DFT energy calculation on bulk aluminium using Quantum ESPRESSO.
3
+
4
+ Key settings for PBC calculations:
5
+ - ``pw_cutoff``: plane-wave kinetic-energy cutoff in Hartree (higher = more accurate/slower)
6
+ - ``kpoints``: Monkhorst–Pack k-point grid (denser = more accurate/slower)
7
+ - ``smearing``: occupation smearing type — recommended for metals to aid SCF convergence
8
+ - ``degauss``: smearing width in Hartree (typical range: 0.005–0.02)
9
+
10
+ Periodic molecules are constructed from atomic positions + lattice vectors.
11
+ See documentation at: https://docs.rowansci.com/science/workflows/basic-calculation
12
+ """
13
+
14
+ import rowan
15
+
16
+ # Set your API key or use the ROWAN_API_KEY environment variable
17
+ # rowan.api_key = "rowan-sk..."
18
+ folder = rowan.get_folder("examples/periodic_dft")
19
+
20
+ # Build bulk Al FCC primitive cell.
21
+ # Lattice vectors in Angstrom; Al has 13 electrons so multiplicity=2.
22
+ cell = rowan.PeriodicCell(
23
+ lattice_vectors=(
24
+ (0.0, 2.0230, 2.0230),
25
+ (2.0230, 0.0, 2.0230),
26
+ (2.0230, 2.0230, 0.0),
27
+ )
28
+ )
29
+ al_fcc = rowan.Molecule.from_atoms(
30
+ atoms=[rowan.Atom(atomic_number=13, position=(0.0, 0.0, 0.0))],
31
+ charge=0,
32
+ multiplicity=2,
33
+ cell=cell,
34
+ )
35
+
36
+ # Marzari–Vanderbilt cold smearing is recommended for metals.
37
+ pbc_settings = rowan.PBCDFTSettings(
38
+ pw_cutoff=7.5, # Hartree; SSSP efficiency recommends ~7–9 Ha for Al
39
+ kpoints=(4, 4, 4), # Monkhorst–Pack grid; increase for production runs
40
+ smearing=rowan.PBCDFTSmearing.MV,
41
+ degauss=0.01, # Hartree smearing width
42
+ )
43
+
44
+ workflow = rowan.submit_basic_calculation_workflow(
45
+ initial_molecule=al_fcc,
46
+ tasks=["energy"],
47
+ method="PBE",
48
+ basis_set="SSSP_efficiency",
49
+ pbc_dft_settings=pbc_settings,
50
+ name="Al FCC bulk energy",
51
+ folder=folder,
52
+ )
53
+
54
+ print(f"View workflow privately at: https://labs.rowansci.com/calculation/{workflow.uuid}")
55
+ result = workflow.result()
56
+ print(result)
57
+ # e.g. <BasicCalculationResult energy=-19.725 H>
58
+ print(f"Al FCC energy: {result.energy:.6f} Hartree")
@@ -0,0 +1,69 @@
1
+ """
2
+ Calculate the pKa of phenol using the Rowan API.
3
+
4
+ Experimental value ≈ 9.99
5
+
6
+ Four methods are available:
7
+ - aimnet2_wagen2024: AIMNet2-based; requires 3D structure; water only.
8
+ - gxtb_wagen2026: g-xTB-based; requires 3D structure; water only; full periodic table.
9
+ - chemprop_nevolianis2025: Chemprop-based; requires SMILES; several solvents supported.
10
+ - starling: SMILES-based; water only.
11
+
12
+ See documentation at: https://docs.rowansci.com/science/workflows/pka
13
+ """
14
+
15
+ import rowan
16
+
17
+ # Set your API key or use the ROWAN_API_KEY environment variable
18
+ # rowan.api_key = "rowan-sk..."
19
+ folder = rowan.get_folder("examples/pka")
20
+
21
+ # 3D structure-based methods — pass a Molecule with coordinates
22
+ mol = rowan.Molecule.from_smiles("c1ccccc1O")
23
+
24
+ workflow = rowan.submit_pka_workflow(
25
+ initial_molecule=mol,
26
+ method="aimnet2_wagen2024",
27
+ name="Phenol pKa (aimnet2_wagen2024)",
28
+ folder=folder,
29
+ )
30
+ print(f"View at: https://labs.rowansci.com/pka/{workflow.uuid}")
31
+ result = workflow.result()
32
+ print(result)
33
+ # e.g. <pKaResult acid=9.87>
34
+
35
+ workflow2 = rowan.submit_pka_workflow(
36
+ initial_molecule=mol,
37
+ method="gxtb_wagen2026",
38
+ name="Phenol pKa (gxtb_wagen2026)",
39
+ folder=folder,
40
+ )
41
+ print(f"View at: https://labs.rowansci.com/pka/{workflow2.uuid}")
42
+ result2 = workflow2.result()
43
+ print(result2)
44
+ # e.g. <pKaResult acid=9.92>
45
+
46
+ # SMILES-based methods — pass a SMILES string directly
47
+ smiles = "c1ccccc1O"
48
+
49
+ workflow3 = rowan.submit_pka_workflow(
50
+ initial_molecule=smiles,
51
+ method="chemprop_nevolianis2025",
52
+ name="Phenol pKa (chemprop_nevolianis2025)",
53
+ folder=folder,
54
+ )
55
+ print(f"View at: https://labs.rowansci.com/pka/{workflow3.uuid}")
56
+ result3 = workflow3.result()
57
+ print(result3)
58
+ # e.g. <pKaResult acid=9.75>
59
+
60
+ workflow4 = rowan.submit_pka_workflow(
61
+ initial_molecule=smiles,
62
+ method="starling",
63
+ name="Phenol pKa (starling)",
64
+ folder=folder,
65
+ )
66
+ print(f"View at: https://labs.rowansci.com/pka/{workflow4.uuid}")
67
+ result4 = workflow4.result()
68
+ print(result4)
69
+ # e.g. <pKaResult acid=9.81>