Inspiration

Consumer genomics services ask you to upload your most sensitive biological data to their servers. We wanted to prove that clinical-grade genomic interpretation can run locally, with zero data leaving the device while still providing insight and a potential early warning system for various genetic disorders.

What it does

Atria takes a standard VCF file and runs it through seven interpretation modules including pharmacogenomics (CYP2C19, DPYD, etc.), disease risk (BRCA1/2, Lynch syndrome), HLA typing (drug hypersensitivity), carrier screening, ancestry composition, trait prediction, and a scaffold module which produces structured clinical findings mapped to an interactive anatomical body map. Everything executes on the user's laptop.

How we built it

First, a reference database including gene sequencing open source data from 13 different open source databases. This data was cleaned and dimensionally reduced using principal component analysis as well as other noise reduction techniques to better identify notable trends. Next, the team worked on the marketing/download website using Claude and Codex with Rust to easily push clean commits we make to our repository where Vercel connects and hosts our site. The analysis engine component of our app is a Rust workspace with a typed module registry. Each module implements a shared AnalysisModule trait and emits Finding structs with body-zone mapping, severity, and evidence metadata. The runtime uses Polars for annotation lookups against a local Parquet bundle. The desktop shell is Tauri v2 wrapping a Next.js frontend. A PyO3-backed bridge exists for modules that need Python sandboxed behind a typed request and response boundary. TypeScript bindings are generated from the Rust schema through ts-rs so the frontend and backend share a single source of truth.

Challenges we ran into

Coordinating multiple AI coding agents across the Rust backend, the Tauri glue layer, and the Next.js frontend simultaneously while three agents wrote code in parallel was the hardest problem we faced. Getting PyO3 to coexist with Tauri's build pipeline without bloating the binary with a full Python interpreter required a deliberate opt-in architecture. An initial principal component analysis error also bottlenecked a device into restarting.

Accomplishments that we're proud of

As biochemistry majors here at Wayne State, it is a real pleasure to be able to take our love of healthcare and genomics, and employ as well as learn a litany of skills to build real functional tools towards positive action in fields we feel closest to. We're proud of how our team came together with individual strengths and honesty about weaknesses to collaborate and power through several different challenges that we faced throughout the planning and creation of Atria.

What we learned

The team had varying levels of knowledge in specific steps of our implementation, so through collective effort we were able to jointly conduct and learn about data cleaning, database creation, and its automation, as well as using AI tools to format, build and host a website. Finally, the most was learned in the creation of the Atria app, as interactive tools that could accurately synthesize results were unfamiliar to two in the group.

What's next for Atria

Wiring the embedded Python interpreter for ML-backed modules (this would include things like polygenic risk scores, and nutrigenomics models), expanding the annotation bundle with ClinVar and PharmGKB depth, and creating easy to deploy macOS/Windows app coordination between the website and the install.

Built With

Share this project:

Updates