Nikhil Singh
Computational Biology / Molecular Modeling / Software — Bengaluru, India
What I work on
I build computational tools for drug discovery, and the web applications that make technical work usable by people who are not standing next to me while it runs. Most of what I do sits at the point where structural biology stops being a diagram and starts being a search problem: which of these thousand compounds is worth the cost of docking, which mutations break a binding site, and how do you know the answer is real rather than an artefact of the scoring function.
The through-line across the projects below is that expensive computation should be aimed, not sprayed. Screening a 1,045-compound library against seventy-seven protein structures is roughly eighty thousand docking runs; the interesting engineering problem is not running them faster but deciding, defensibly, which ones not to run at all. The same instinct shows up in the education tools — parse the corpus once, carefully, so that every student query afterwards is cheap.
Working toolkit
- Structure
- PyRosetta mutagenesis, homology and pocket analysis, fpocket / P2Rank
- Docking
- AutoDock Vina, bounded-box configs, PLIP interaction profiling
- Dynamics
- GROMACS production runs, CAVER tunnel analysis, PyMOL
- Cheminformatics
- RDKit, Morgan fingerprints, Butina clustering, Ertl functional groups
- Data
- ChEMBL, BindingDB, UniProt, InterPro, RCSB PDB
- Web
- Vue 3, TypeScript, Rust / WebAssembly, Supabase, Firebase
Projects
LigandMiner
Drug discovery — In development · source private
An explainable virtual-screening and drug-repurposing framework. Given a protein target, it pulls the ligands already known to bind it from ChEMBL and BindingDB, distils them into a consensus pharmacophore — a spatial arrangement of donors, acceptors, aromatics and hydrophobes with learned pairwise distance bounds — then screens a candidate library against that consensus with a custom constraint-solver and branch-and-bound embedding search.
It deliberately does not dock. The point is to be the cheap pre-filter that runs before docking, cutting a 1,045-compound FDA-approved library down to a shortlist of tens, so the expensive stage only ever sees candidates worth the compute. Scoring is a support-weighted maximum satisfiable subset rather than all-or-nothing, because strict full-consensus matching rejected literature-confirmed actives — ritonavir and lopinavir among them — over one or two unsatisfiable slots.
Built with: Python, RDKit, ChEMBL, Branch & bound, Pharmacophore modeling.
Antimalarial Resistance Screen
Research — Ongoing study
A structure-based study asking which FDA-approved drugs stay effective against drug-resistant Plasmodium falciparum. Seven targets — Plasmepsin X, PfDHFR-TS, PfCRT, PfMDR1, PfCytb, PfDHPS and one more — each with roughly ten known resistance mutants alongside wild type, for about seventy-seven structures in total.
The pipeline builds mutant structures with PyRosetta, docks with AutoDock Vina against manually curated bounded configs, and analyses contacts with PLIP. LigandMiner sits on the critical path: screening the full library once per target against wild type, then docking only the resulting shortlist against every mutant, removes upwards of 95% of the docking burden. Molecular dynamics runs confirm whether the surviving poses actually hold.
Built with: PyRosetta, AutoDock Vina, GROMACS, PLIP, Python.
Education tooling — Live
A practice environment for Cambridge 9618 Computer Science, combining a past-paper MCQ solver with a pseudocode IDE that actually runs the syllabus's pseudocode dialect. Students write code, execute it, and get compiler errors and mark-scheme feedback against real questions.
The pseudocode parser is written in Rust and compiled to WebAssembly so execution happens in the browser with no round trip. Papers are annotated in a custom PDF layer, progress and attempts live in Supabase, and written answers are graded by a self-contained Python function on Vercel. The corpus itself came out of an OCR and extraction pipeline run once, offline, rather than being re-derived per request.
Built with: Vue 3, TypeScript, Rust / WASM, Supabase, ECharts. Source
Outreach — Live
The site for a student-led initiative taking accessible particle-physics education to students in rural and underserved communities around Bengaluru — what everything is made of, explained without assuming a lab or a textbook budget.
Built as a static-rendered Vue application so it loads quickly on the slow connections and older phones the audience actually uses, with the ambient motion fully disabled under a reduced-motion preference.
Built with: Vue, Nuxt, SSG. Source
Product — Live
A marketplace for passing school books forward instead of letting them sit unused. Listings, search, buyer requests, acceptance, watchlists, and a chat that only opens once a request has been matched.
Bulk upload maps a whole year's book list against a school's known set, so a family clearing a shelf lists twenty books in one pass rather than twenty. The architecture keeps Firebase reads and writes behind repository modules, with the request lifecycle — upload pool, buyer request, acceptance — as the domain model everything else is written against.
Built with: Vue 3, TypeScript, Firebase, Vite.
Collaboration — Live
A peer-mentoring platform pairing students who need help in a subject with students who can give it — mentor and mentee onboarding, applications, a matching board, and shared notes.
Built with a collaborator, with Firebase security rules doing the real access control so mentor, mentee and admin views enforce their boundaries at the database rather than in the interface.
Built with: JavaScript, Firebase, Vercel.
Contact
nikhil.s.abrol@gmail.com
https://github.com/nikhilsingh-official