Inspiration
We wanted to make early drug-discovery exploration more transparent. A basic search can return biological records, and a basic scoring tool can return a number, but neither necessarily shows how a candidate was derived or what evidence shaped the research context. ASTERION brings those steps into one workspace: start with a biological target and a seed molecule, inspect pathway and interaction evidence, then follow a visible chain of proposed molecular edits.
What it does
ASTERION gathers target and pathway context from KEGG and drug–gene interaction records from DGIdb. RDKit validates a researcher-provided seed molecule, applies predefined reaction rules to generate chemically valid analogs, and calculates molecular weight, estimated LogP, hydrogen-bond donor and acceptor counts, and a heuristic property score.
The app shows candidate generations as a molecular lineage, including the edit applied, descriptor values, and a Rule-of-Five threshold screen. Each candidate also has an interactive ball-and-stick conformer that can be rotated and zoomed.
How we built it
We used JacHammer.ai as our app-building and prototyping environment, then customized the project in Jac source files. Jac let us build the application’s interface and backend in one project and model the workflow as a graph.
Targets, evidence records, and candidates are represented as graph nodes connected by typed edges. A Jac walker traverses that graph and records its route. The backend queries KEGG’s REST API and DGIdb’s GraphQL API for biological context, then uses RDKit reaction rules and molecular descriptors to generate and rank candidates.
Our refinement is bounded: it can run up to four improving edit rounds and stops early when no valid or improving proposal is available.
Challenges we ran into
Biological names and pathway labels do not always map cleanly to database records. KEGG and DGIdb can return different kinds of matches, no results, or request errors, so we needed to handle incomplete responses and make the evidence source visible.
Chemical edits also need to produce valid molecules. A reaction rule can suggest a structure that RDKit cannot sanitize or embed, so we validate proposed molecules, discard invalid or duplicate structures, and stop when the search cannot find an improving candidate.
A final challenge was presenting our results without overstating what they mean. A drug-like property profile is not evidence of target binding, and database associations do not prove that a generated molecule will work.
Accomplishments that we're proud of
We built an end-to-end prototype that brings biological context, candidate generation, descriptor screening, and molecular visualization together in one workspace. Instead of showing only a final score, ASTERION shows a candidate’s lineage and the edit behind each generation.
We’re also proud that the Jac graph model is part of the application itself: users can inspect its nodes, edges, and recorded walker trace.
What we learned
We learned that making a workflow inspectable is as important as producing a result. A visible mutation history and cited evidence help users ask better questions about how a candidate was selected.
We also learned to distinguish property screening from molecular efficacy. LogP is a descriptor related to lipophilicity, not a direct measurement of bodily permeability; hydrogen-bond donor and acceptor counts are molecular descriptors, not measures of target binding. The Rule-of-Five screen and our property score are early filters, not proof that a molecule is a drug.
What's next for ASTERION
Next, we want to add protein-structure retrieval and integrate AutoDock Vina, with clear preparation steps for both receptor and ligand. Vina scores would be shown as computational estimates, not experimental binding measurements.
We also want to stream Jac walker events as they happen, so the graph view can follow each real traversal. In the current prototype, the graph displays the recorded route after refinement, while its moving marker is illustrative rather than a live replay of every step.
Built With
- css
- jac
Log in or sign up for Devpost to join the conversation.