Easter Updates to Rowan
webhooks, draft workflows, and usage estimates for Rowan’s Python API; tautomers in non-aqueous solvents; COSMO-based descriptors; overage-based billing; an FEP speed test; welcome Zach
Happy Eastertide! This week, we’re happy to share a diverse litany of enhancements to Rowan: new API features, improvements to our tautomer and descriptor workflows, and an optional new billing scheme for subscribers.
New Python API Features
Webhooks
You can now configure webhook endpoints via Rowan’s API to be notified when workflows complete. This allows your Rowan-powered applications to react automatically to finished jobs—triggering downstream analysis, syncing results into internal systems, or updating users in real time without polling the API.
To use webhooks through Rowan, first create a webhook secret:
import rowan
secret = rowan.create_webhook_secret()(This command is idempotent—if a secret already exists, it will be returned.)
Then simply supply webhook_url to any workflow submit function:
workflow = rowan.submit_admet_workflow(
initial_smiles="O=S2(=O)OC(c1ccccc12)(c3cc(c(O)cc3C)C(C)C)c4cc(c(O)cc4C)C(C)C",
name="test ADMET (webhook)",
webhook_url="<https://your-server.com/webhook>",
)
print(f"Submitted: <https://labs.rowansci.com/workflow/{workflow.uuid}>")When the workflow completes, Rowan will POST the result to webhook_url with an X-Rowan-Signature header. You can securely verify the result on your server using HMAC-SHA256 with:
rowan.verify_webhook_secret(raw_body, signature_header, secret)As usual, refer to our Python API documentation if you have any questions.
Draft Workflows and Dispatch Information
You can now submit “draft” workflows through Rowan’s API—simply add the argument is_draft=True to any workflow submit function.
workflow = rowan.submit_admet_workflow(
initial_smiles="O=S2(=O)OC(c1ccccc12)(c3cc(c(O)cc3C)C(C)C)c4cc(c(O)cc4C)C(C)C",
name="test ADMET (webhook)",
is_draft=True,
)You can then call workflow.dispatch_info() to retrieve information about how long the workflow is predicted to take to run and what hardware it will run on. Here, we can see that the above workflow won’t need to be dispatched to special hardware, will run on CPU, and is estimated to take only 0.15 minutes to run:
print(workflow.dispatch_info())
#DispatchInfo(to_be_dispatched=False, compute_hardware='CPU', estimated_runtime_minutes=0.15)The draft workflow can then be submitted with workflow.submit_draft() or deleted with workflow.delete().
Tautomers in Non-Aqueous Solvents
We’ve had requests to compute tautomer ratios in non-aqueous solvents for some time now, and we’ve finally made this possible! You can now customize the multi-stage optimization settings to change how tautomers are scored, including changing the final solvent employed.
This allows for investigation of solvent effects on tautomer ratios, which can be pretty dramatic—for instance, dimedone favors the diketone form by 3.1 kcal/mol in chloroform (shown below), but the gap shrinks to 1.1 kcal/mol in DMSO.
New Descriptors (COSMO, Volume, Flexibility)
We’ve added a set of COSMO-based descriptors to Rowan’s descriptors workflow. COSMO calculations are run through xTB and provide a suite of output properties, which allow for automatic detection of e.g. total polar surface area at the GFN2-xTB/COSMO level of theory. (The solvent can be selected upon submission.)
Here’s what this looks like for a sample organometallic complex:
We’ve also added molecular_volume and flexibility_index descriptors, as requested by users. (The flexibility is calculated following the Kier φ formula.)
Overages
Our standard subscription tiers include weekly credit allocations that work well for many users, but we’ve heard from teams with variable computational needs that more flexibility would be nice—it’s frustrating to constantly have to estimate how many credits a round of calculations will cost and track usage relative to your account’s weekly limit.
We’re excited to introduce overage billing logic to Rowan today. With overages enabled, your calculations run without interruption and you’re billed only for what you use at the end of each month (at our standard rate of $0.04/credit).
We pay plenty of usage-based subscriptions here at Rowan and we don’t want to surprise anyone with unexpected bills. To keep costs within limits, you can set configurable credit limits at both the organization and individual level so you’re always in control. We also provide analytics to track spend by workflow type and by user at labs.rowansci.com/account/credits, so you should never have to wonder where credits are going.
Since this feature is new, we’re not yet allowing users to turn on overage billing themselves—if you’re interested in enabling overages for your account/team, let us know and we’ll get you set up!
Other News:
We released a blog post yesterday comparing the “fast” and “recommended” settings for Rowan FEP. On the MCL1 benchmark set, using the “fast” settings makes the RBFE 4x faster with minimal loss in ranking accuracy, although the predicted energies are worse. If you’re interested in compound prioritization, consider using “fast” settings in your FEP runs—it might work well for your system!
We also recently released a preprint on transition-state searching! In collaboration with Jonah Marks and Joe Gomes from the University of Iowa, Jonathon Vandezande (Rowan’s director of computational chemistry) found that the ML-FSM algorithm can be combined with NNPs like UMA and OMol25-eSEN-sm-cons to quickly find transition states in a fully automated fashion. This is how Rowan’s double-ended transition-state search workflow runs—while we’ve been happy with the performance anecdotally, now we have data to show how well it works!
While this isn’t strictly first-party Rowan content, Jonathon also just published a guide to using AI coding tools like Claude Code and Codex. If you’re interested in using these tools but haven’t yet, or if you’re wondering what the Rowan tech stack looks like these days, check out his post.
Finally, we’re excited to welcome Zach Fried to the Rowan team. Zach defended his PhD from MIT last month, where he studied experimental and theoretical methods for detection of interstellar molecules. While we don’t plan to get into the interstellar molecular detection field just yet at Rowan, we’re excited to put Zach’s formidable skillset to use. Welcome!









