Back to Claude Scientific Skills

Rowan Workflow Catalog

skills/rowan/references/workflow_catalog.md

2.57.011.3 KB
Original Source

Rowan Workflow Catalog

Submission code, options, and result shapes for the common workflow categories, followed by the complete list of supported workflow types.

Common workflow categories

1. Descriptors

A lightweight entry point for batch triage, SAR, or exploratory scripts.

python
wf = rowan.submit_descriptors_workflow(
    "CC(=O)Oc1ccccc1C(=O)O",  # positional arg, accepts SMILES string
    name="aspirin descriptors",
)

result = wf.result()
print(result.descriptors['MW'])    # 180.16
print(result.descriptors['SLogP']) # 1.19
print(result.descriptors['TPSA'])  # 59.44
print(result.data['descriptors'])
# {'MW': 180.16, 'SLogP': 1.19, 'TPSA': 59.44, 'nHBDon': 1.0, 'nHBAcc': 4.0, ...}

Common descriptor keys:

KeyDescriptionTypical drug range
MWMolecular weight (Da)<500 (Lipinski)
SLogPCalculated LogP (lipophilicity)-2 to +5
TPSATopological polar surface area (Ų)<140 for oral bioavailability
nHBDonH-bond donor count≤5 (Lipinski)
nHBAccH-bond acceptor count≤10 (Lipinski)
nRotRotatable bond count<10 for oral drugs
nRingRing count
nHeavyAtomHeavy atom count
FilterItLogSEstimated aqueous solubility (LogS)>-4 preferred
LipinskiLipinski Ro5 pass (1.0) or fail (0.0)

The result contains hundreds of additional molecular descriptors (BCUT, GETAWAY, WHIM, etc.); access any via result.descriptors['key'].

2. Microscopic pKa

For protonation-state energetics and acid/base behavior of a specific structure.

Two methods are available:

MethodInputSpeedCoversUse when
chemprop_nevolianis2025SMILES stringFastDeprotonation only (anionic conjugate bases)Acidic groups only; quick screening
starlingSMILES stringFastAcid + base (full protonation/deprotonation)Most drug-like molecules; preferred SMILES method
aimnet2_wagen2024 (default)3D molecule objectSlower, higher accuracyAcid + baseYou already have a 3D structure (e.g. from conformer search)
python
# Fast path: SMILES input with full acid+base coverage (use starling method when available)
wf = rowan.submit_pka_workflow(
    initial_molecule="c1ccccc1O",       # phenol SMILES; param is initial_molecule, not initial_smiles
    method="starling",   # fast SMILES method, covers acid+base; chemprop_nevolianis2025 is deprotonation-only
    name="phenol pKa",
)

result = wf.result()
print(result.strongest_acid)    # 9.81 (pKa of the most acidic site)
print(result.conjugate_bases)   # list of {pka, smiles, atom_index, ...} per deprotonatable site

3. MacropKa

For pH-dependent protonation behavior across a range.

python
wf = rowan.submit_macropka_workflow(
    initial_smiles="CN1CCN(CC1)C2=NC=NC3=CC=CC=C32",  # imidazole
    min_pH=0,
    max_pH=14,
    min_charge=-2,  # default
    max_charge=2,   # default
    compute_aqueous_solubility=True,  # default
    name="imidazole macropKa",
)

result = wf.result()
print(result.pka_values)               # list of pKa values
print(result.logd_by_ph)               # dict of {pH: logD}
print(result.aqueous_solubility_by_ph) # dict of {pH: solubility}
print(result.isoelectric_point)        # isoelectric point
print(result.data)
# {'pKa_values': [...], 'logD_by_pH': {...}, 'aqueous_solubility_by_pH': {...}, ...}

For 3D ensemble generation when ensemble quality matters.

python
wf = rowan.submit_conformer_search_workflow(
    initial_molecule="CCOC(=O)N1CCC(CC1)Oc1ncnc2ccccc12",
    num_conformers=50,  # Optional: override default
    name="conformer search",
)

result = wf.result()
print(result.conformer_energies)  # [0.0, 1.2, 2.5, ...]
print(result.conformer_molecules)  # List of 3D molecules
print(result.best_conformer)  # Lowest-energy conformer

For heterocycles and systems where tautomer state affects downstream modeling.

python
wf = rowan.submit_tautomer_search_workflow(
    initial_molecule="O=c1[nH]ccnc1",  # or keto tautomer
    name="imidazolone tautomers",
)

result = wf.result()
print(result.best_tautomer)  # Most stable SMILES string
print(result.tautomers)      # List of tautomeric SMILES
print(result.molecules)      # List of molecule objects

6. Docking

For protein-ligand docking with optional pose refinement and conformer generation.

python
# Upload protein once, reuse in multiple workflows
protein = rowan.upload_protein(
    name="CDK2",
    file_path="cdk2.pdb",
)

# Define binding pocket
pocket = {
    "center": [10.5, 24.2, 31.8],
    "size": [18.0, 18.0, 18.0],
}

# Submit docking
wf = rowan.submit_docking_workflow(
    protein=protein,
    pocket=pocket,
    initial_molecule="CCNc1ncc(c(Nc2ccc(F)cc2)n1)-c1cccnc1",
    do_pose_refinement=True,
    do_conformer_search=True,
    name="lead docking",
)

result = wf.result()
print(result.scores)  # Docking scores (kcal/mol)
print(result.best_pose)  # Mol object with 3D coordinates
print(result.data)  # Raw result dict

Protein preparation tips:

  • PDB files should be reasonably clean (remove water/heteroatoms unless intended)
  • Use the same protein object across a docking series for consistency
  • If you have a PDB ID, use rowan.create_protein_from_pdb_id() instead

7. Analogue docking

For placing a compound series into a shared binding context.

python
# Analogue series (e.g., SAR campaign)
analogues = [
    "CCNc1ncc(c(Nc2ccc(F)cc2)n1)-c1cccnc1",    # reference
    "CCNc1ncc(c(Nc2ccc(Cl)cc2)n1)-c1cccnc1",   # chloro
    "CCNc1ncc(c(Nc2ccc(OC)cc2)n1)-c1cccnc1",   # methoxy
    "CCNc1ncc(c(Nc2cc(C)c(F)cc2)n1)-c1cccnc1", # methyl, fluoro
]

wf = rowan.submit_analogue_docking_workflow(
    analogues=analogues,
    initial_molecule=analogues[0],  # Reference ligand
    protein=protein,
    pocket=pocket,
    name="SAR series docking",
)

result = wf.result()
print(result.analogue_scores)  # List of scores for each analogue
print(result.best_poses)  # List of poses

8. MSA generation

For multiple-sequence alignment (useful for downstream cofolding).

python
wf = rowan.submit_msa_workflow(
    initial_protein_sequences=[
        "MENFQKVEKIGEGTYGVVYKARNKLTGEVVALKKIRLDTETEGVP"
    ],
    output_formats=["colabfold", "chai", "boltz"],
    name="target MSA",
)

result = wf.result()
result.download_files()  # Downloads alignments to disk

9. Protein-ligand cofolding

For AI-based bound-complex prediction when no crystal structure is available.

python
wf = rowan.submit_protein_cofolding_workflow(
    initial_protein_sequences=[
        "MENFQKVEKIGEGTYGVVYKARNKLTGEVVALKKIRLDTETEGVP"
    ],
    initial_smiles_list=[
        "CCNc1ncc(c(Nc2ccc(F)cc2)n1)-c1cccnc1"
    ],
    name="protein-ligand cofolding",
)

result = wf.result()
print(result.predictions)  # List of predicted structures
print(result.messages)  # Model metadata/warnings

predicted_structure = result.get_predicted_structure()
predicted_structure.write("predicted_complex.pdb")

All supported workflow types

All workflows follow the same submit → wait → retrieve pattern and support webhooks and project/folder organization.

Core molecular modeling workflows

WorkflowFunctionWhen to use
Descriptorssubmit_descriptors_workflowFirst-pass triage: MW, LogP, TPSA, HBA/HBD, Lipinski filter
pKasubmit_pka_workflowSingle ionizable group; need protonation thermodynamics
MacropKasubmit_macropka_workflowMulti-ionizable drugs; pH-dependent charge/LogD/solubility
Conformer Searchsubmit_conformer_search_workflow3D ensemble for docking, MD, or SAR; known tautomer
Tautomer Searchsubmit_tautomer_search_workflowHeterocycles, keto–enol; uncertain tautomeric form
Solubilitysubmit_solubility_workflowAqueous or solvent-specific solubility prediction
Membrane Permeabilitysubmit_membrane_permeability_workflowCaco-2, PAMPA, BBB, plasma permeability
ADMETsubmit_admet_workflowBroad drug-likeness and ADMET property sweep

Structure-based design workflows

WorkflowFunctionWhen to use
Dockingsubmit_docking_workflowSingle ligand, known binding pocket
Analogue Dockingsubmit_analogue_docking_workflowSAR series (5–100+ compounds) in a shared pocket
Batch Dockingsubmit_batch_docking_workflowFast library screening; large compound sets
Protein MDsubmit_protein_md_workflowLong-timescale dynamics; conformational sampling
Pose Analysis MDsubmit_pose_analysis_md_workflowMD refinement of a docking pose
Protein Cofoldingsubmit_protein_cofolding_workflowNo crystal structure; AI-predicted bound complex
Protein Binder Designsubmit_protein_binder_design_workflowDe novo binder generation against a protein target

Advanced computational chemistry

WorkflowFunctionWhen to use
Basic Calculationsubmit_basic_calculation_workflowQM/ML geometry optimization or single-point energy
Electronic Propertiessubmit_electronic_properties_workflowDipole, partial charges, HOMO-LUMO, ESP
BDEsubmit_bde_workflowBond dissociation energies; metabolic soft-spot prediction
Redox Potentialsubmit_redox_potential_workflowOxidation/reduction potentials
Spin Statessubmit_spin_states_workflowSpin-state energy ordering for organometallics/radicals
Strainsubmit_strain_workflowConformational strain relative to global minimum
Scansubmit_scan_workflowPES scans; torsion profiles
Multistage Optimizationsubmit_multistage_opt_workflowProgressive optimization across levels of theory

Reaction chemistry

WorkflowFunctionWhen to use
Double-Ended TS Searchsubmit_double_ended_ts_search_workflowTransition state between two known structures
IRCsubmit_irc_workflowConfirm TS connectivity; intrinsic reaction coordinate

Advanced properties

WorkflowFunctionWhen to use
NMRsubmit_nmr_workflowPredicted 1H/13C chemical shifts for structure verification
Ion Mobilitysubmit_ion_mobility_workflowCollision cross-section (CCS) for MS method development
Hydrogen Bond Strengthsubmit_hydrogen_bond_basicity_workflowH-bond donor/acceptor strength for formulation/solubility
Fukuisubmit_fukui_workflowSite reactivity indices for electrophilic/nucleophilic attack
Interaction Energy Decompositionsubmit_interaction_energy_decomposition_workflowFragment-level interaction analysis

Binding free energy

WorkflowFunctionWhen to use
RBFE/FEPsubmit_relative_binding_free_energy_perturbation_workflowRelative ΔΔG for congeneric series
RBFE Graphsubmit_rbfe_graph_workflowBuild and optimize an RBFE perturbation network

Sequence and structural biology

WorkflowFunctionWhen to use
MSAsubmit_msa_workflowMultiple sequence alignment for cofolding (ColabFold, Chai, Boltz)
Solvent-Dependent Conformerssubmit_solvent_dependent_conformers_workflowSolvation-aware conformer ensembles