VIDEO
Stoolum Logo
Stoolum UI
Low Probability Demo
Medium Probability Demo
High Probability Demo
Inspiration
Cirrhosis usually gets caught late, typically once liver damage is severe and treatment options are limited.
Research on the gut-liver axis shows certain gut bacteria (like Veillonella and Haemophilus ) show up more often in people with advanced liver disease
That led us to a simple question: could a stool sample flag cirrhosis risk before symptoms get serious?
That was our inspiration for Stoolum: a tool that turns microbiome data researchers already have into a cirrhosis probability score in minutes
What it does
Estimates cirrhosis probability from stool bacterial abundance data
Users can upload a MetaPhlAn CSV, enter values manually, or try a demo profile
Pulls out 10 key bacterial species and shows what it found
Returns a probability score with a risk level (low/moderate/high)
Built for research triage/diagnosis
How we built it
Trained on about 1,989 stool samples with 826 species-level features
Used ANOVA F-tests to narrow it down to the 10 species most linked to cirrhosis (mostly Veillonella and related oral-gut bacteria)
A Random Forest classifier learned from those 10 features
Runs in a Streamlit app that handles messy real-world CSV formats using pandas/numpy
Shows preview tables so users can trust what's happening under the hood
Challenges
Microbiome data is sparse; most species show up as zero in most samples, so feature selection had to do a lot of work
Real CSV exports have long, ugly taxonomy headers, so we built logic to match them to our model's features
Sliders don't work well for this kind of data; CSV upload became the main path instead
What we're proud of
A full pipeline, from raw CSV to prediction to readable result
The tool is built around how researchers actually work, utilizing a MetaPhlAn CSV used in metagenomics
What we learned
Feature selection matters as much as the model itself when you have way more species than samples
Good ML tools are workflow tools first: they need to fit into what people already have, not ask for something new
I learned how to build a Random Forest classifier in Python for the first time.
What's next
External validation on new data (i.e. testing out the model on different datasets)
Batch scoring: calculating the scores for multiple samples
Feature importance explanations so people can see which species drove a given score
Try it out
Log in or sign up for Devpost to join the conversation.