I build computational frameworks that fuse evolutionary conservation, protein-sequence embeddings, and interaction networks to rank candidate disease genes against clinical phenotypes — validated on real patient cohorts, not benchmarks.
For roughly 40% of patients with an inherited retinal disease, sequencing comes back inconclusive. The variants are there. The pipelines are asking the wrong question.
Diagnostic tools read one gene at a time and ask whether it spells a known disease. But genes don't work alone — they co-evolve in modules across hundreds of millions of years, leaving a graded trace of conservation and loss across the tree of life.
That trace is independent of anything anyone has published about the gene. Which is exactly why it can point somewhere new.
Retinal disease is the test bed.
The framework itself is agnostic to the organ.
But what if the patient has no mutation in any known gene?
But what if the patient carries no mutation in any known disease gene?
The search has to widen past the ~500 genes already on the list. The obstacle is that a gene nobody has studied has no phenotype annotation — it is invisible to exactly the kind of data the first phase runs on.
The framework doesn't claim to find causal genes. It produces a much shorter list of candidates worth investigating.
A clinician enters what they observe. The engine returns a ranked list of disease modules and candidate genes, with the reasoning behind every score.
Validated against solved cases from the Molecular Ophthalmology Laboratory at Hadassah Medical Center, which holds one of the world's largest inherited retinal disease cohorts.
This is the answer to the discovery problem: a three-tower PyTorch network that fuses evolutionary conservation, ESM2 protein-language embeddings, and PPI network topology to score genes that phenotype data alone can't reach.
All seven possible tower combinations were trained and compared. PPI network topology alone turned out to be the strongest single predictor — stronger than evolutionary conservation, stronger than protein sequence, and stronger than all three fused.
The fusion model was more stable across folds and covered small modules better, which is why it remained the working model, but the honest headline is that the network signal dominates.
Three independent models score all 19,573 unlabeled genes: the fused three-tower network, an NPP-only model, and a PPI-only model. Genes are retained only where at least two of the three agree on module assignment, and flagged as highest confidence where all three converge. Disagreement is treated as a filter, not as noise to be averaged over.
Five more projects that make up the framework. Each one shipped, each one on GitHub.
Six months at Pre-Cure Biotech, a personalized oncology startup, building the data infrastructure the science runs on.
Designed and deployed a relational data management system that replaced spreadsheet-based clinical workflows with structured, queryable infrastructure.
Cloud deployment, LLM-assisted data entry, and a schema built around how the team actually works rather than how the data happened to arrive.
The research half of this portfolio asks what the data means. This half is about making the data usable in the first place — and in a company, that comes first.
Built on Python and R, with the wet-lab background that keeps me honest about what the data actually came from.
Python (PyTorch, scikit-learn, pandas, Biopython), R (tidyverse, Bioconductor, ComplexHeatmap), bash, git
Multi-modal deep learning, protein language models, network embeddings, phylogenetic profiling, unsupervised clustering, Bayesian inference
HPC and SLURM job submission, reproducible pipelines with fixed-seed validation, cloud deployment, LLM-assisted workflows
Open to R&D roles in computational biology and machine learning, research collaborations, and anything in between.