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.
- {rowan_python-3.0.3 → rowan_python-3.0.5}/PKG-INFO +1 -1
- rowan_python-3.0.5/examples/data/Al_FCC.xyz +3 -0
- rowan_python-3.0.5/examples/descriptors.py +25 -0
- rowan_python-3.0.5/examples/periodic_dft.py +58 -0
- rowan_python-3.0.5/examples/pka.py +69 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/pixi.lock +150 -163
- {rowan_python-3.0.3 → rowan_python-3.0.5}/pyproject.toml +1 -1
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/__init__.py +8 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/molecule.py +31 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/analogue_docking.py +9 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/basic_calculation.py +18 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/descriptors.py +19 -6
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/pka.py +32 -17
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/strain.py +15 -7
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/tautomer_search.py +16 -6
- rowan_python-3.0.3/examples/pka.py +0 -43
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.envrc +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/build-and-deploy-docs.yml +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/python-publish.yml +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.github/workflows/test.yml +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.gitignore +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/.pre-commit-config.yaml +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/LICENSE +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/README.md +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/images/deciduous-tree-favicon.png +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/index.md +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/rowan_rdkit.md +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/docs/stylesheets/colors.css +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/PROTAC_solubility.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/admet.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/analogue_docking.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/aqueous_solubility.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_from_json.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_with_constraint.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/basic_calculation_with_solvent.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/batch_docking.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/bde.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/boltz_paired_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/boltz_single_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/chai_paired_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/chai_single_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/cofolding_screen.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/colabfold_paired_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/colabfold_single_msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/conformer_dependent_redox.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/conformers.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/1iep_receptorH.pdb +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/citalopram_1iep.xyz +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/tyk2_ligands.sdf +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/tyk2_structure.pdb +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/data/workflow_example.json +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/dcd_download.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/docking_screen.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/double_ended_ts_search.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/electronic_properties.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/estimate_workflow.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/fukui_index.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/hydrogen_bond_basicity.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/ion_mobility.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/irc.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/macropka.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/membrane_permeability.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/multistage_optimization.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/nmr.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/optimization.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/pdb_download.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/phenol_pka.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/pose_analysis_md.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_binder_design.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_cofolding.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/protein_md.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/rbfe_graph.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/redox_potential.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/retrieve_workflow.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/scan.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/spin_states.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/strain.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/tautomer.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/template.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/examples/webhook.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/mkdocs.yml +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/calculation.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/config.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/constants.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/folder.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/project.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/protein.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/py.typed +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/rowan_rdkit/__init__.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/rowan_rdkit/chem_utils.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/types.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/user.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/utils.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/__init__.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/admet.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/base.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/batch_docking.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/bde.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/conformer_search.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/constants.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/docking.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/double_ended_ts_search.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/electronic_properties.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/fukui.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/hydrogen_bond_donor_acceptor_strength.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/interaction_energy_decomposition.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/ion_mobility.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/irc.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/macropka.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/membrane_permeability.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/msa.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/multistage_optimization.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/nmr.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/pose_analysis_md.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_binder_design.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_cofolding.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/protein_md.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/rbfe_graph.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/redox_potential.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/relative_binding_free_energy_perturbation.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/scan.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/solubility.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/solvent_dependent_conformers.py +0 -0
- {rowan_python-3.0.3 → rowan_python-3.0.5}/rowan/workflows/spin_states.py +0 -0
|
@@ -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>
|