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

Built With

Share this project:

Updates