Really enjoyed this!!
Quick question: What does the "% similarity" bar mean? It's not obviously functional (GO-based) nor is it obviously structural. Several rounds of practice have been waylaid by me misinterpreting what it means for a protein to be 95% similar to the target...
Thanks for checking it out.
It took me many iterations to settle down on the exact logic. At first, I started with just the HiG2Vec GO similarity embedding. It did alright, but I didn't like how the same protein family gets wildly different scores based on just pathway participation or tissue expression. I added ESM2 sequence-based embedding to tame this inconsistency. It also resulted in the "your guess is top-9 similar" hint to be arranged in the order of increasing sequence similarity, which is a nice bonus for late-game triangulation.
I tried making a shared embedding out of two separate ones, but ran into statistical issues with how differently I needed to normalize them. Instead, I opted to calculate intermediate "evidence strengths" for each embedding separately, and then combining them into a final similarity percentage in such a way that highly rewards both "only similar by sequence" and "only functionally similar", so that a player of any background has a chance to close onto the target using their own experience, no matter if it's the experience in pathways or in structural families.
https://geneguessr.brinedew.bio/
Inspired by Geoguessr and Wordle, this is a free web game where you get shown a random human protein each day, and you have to triangulate its gene name using similarity clues.
My background is in wet lab biology and I intend this to be comprehensible mostly to other biologists. But if you're outside the field, I'm interested to know if you can still solve it with browser use LLMs, and if you learned something interesting from doing so. Let me know what you think.
I made it with Claude over the last 2 months. My coding experience is limited to basic python data analysis and figure making. If you've been asking yourself "Now that we have coding AI, why isn't there a deluge of awesome AI-generated apps made by non-coders?", you might be interested to check out Geneguessr to understand what an app by a non-coder looks like.
I might write more about the process if there's a demand, but what really unlocked the project for Claude was Linear MCP, where it could put each individual issue on a shared Kanban board. This, and Playwright MCP for testing on live site, were the two workhorses that got me through this. For bugs Claude couldn't one-shot, Linear was great for consolidating issue information so that I could dump it into ChatGPT Codex - it would usually think for like half an hour, output very confusing explanations, but the bug was gone.
I still haven't figured out mobile testing though - let me know if any bugs remain there.