# Sam's team

- **Event:** [Built with Claude: Life Sciences](https://cerebralvalley.ai/e/built-with-claude-life-sciences)
- **When:** Jul 7 at 12:00 PM – Jul 14 at 12:00 AM (EDT)
- **Where:** Online
- **Team:** [Samuel Bharti](https://cerebralvalley.ai/u/samuelbharti)
- **GitHub:** https://github.com/samuelbharti/biobouncer, https://github.com/samuelbharti/genescout
- **Demo video:** https://www.samuelbharti.com/claude-science-hackathon.html
- **Gallery:** https://cerebralvalley.ai/e/built-with-claude-life-sciences/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/built-with-claude-life-sciences/hackathon/gallery/267

built two open-source tools that solve problems I kept seeing in computational biology.

The first is BioBouncer. In bioinformatics, identifiers are everywhere, but they are often messy. A gene symbol may be outdated, an ontology ID may be malformed, or an identifier may look valid but not actually exist. These checks are usually rewritten again and again in different projects, often differently in R and Python.

BioBouncer creates one consistent validation layer for biological identifiers. It can check format, validate against pinned snapshots, query live databases, suggest repairs, and keep track of species and database versions. I also built matching R and Python implementations and test both against the same shared cases so they return the same result.

The second project is GeneScout. After sequencing, differential expression, ATAC-seq, or a perturbation screen, researchers often end up with several gene lists. The next step is still very manual: search for papers, check databases, compare pathways, assess disease relevance, and decide which genes are worth following up on.

GeneScout brings that workflow into one place. It takes multiple candidate lists and a disease context, then returns a cited and ranked shortlist with supporting evidence, caveats, uncertainties, and suggested next experiments.

I did not want GeneScout to be just another AI wrapper. The scoring, database retrieval, citation checks, and caveat rules are deterministic. Claude is used for the parts where language reasoning is useful, such as combining evidence, explaining why a candidate matters, and suggesting what to test next.

One result I am especially proud of is the caveat-and-veto stage. In the NF1 benchmark, TTN can rank highly if you only look at surface-level evidence. Once caveats are applied, GeneScout recognizes it as a likely misleading candidate and moves it to the bottom.

Together, the two projects cover different parts of the same workflow. BioBouncer helps make sure the inputs are trustworthy. GeneScout helps researchers decide what deserves the next experiment.

I chose Shiny intentionally for GeneScout. Most of the researchers I work with already use R, and many are more comfortable with Shiny than with a custom React application. I wanted the interface to feel familiar and practical rather than impressive for its own sake. At the same time, I kept the core engine UI-independent, so the Shiny app is only one way to use it.

---

Markdown version of https://cerebralvalley.ai/e/built-with-claude-life-sciences/hackathon/gallery/267. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
