Check out this article from TheScientist profiling our development of the Mentorship Index as a proxy for a researcher’s contribution to mentoring junior scholars
The M-Index: A New Metric Puts Mentorship in the Spotlight the-scientist.com/the-m-index-...
Calculate yours: jef.works/Mentorship-I...
Posts by Dr. Jean Fan
Just finished teaching another semester of Genomic Data Visualization! 🥳
This semester, I integrated AI-assisted vibe coding. Some students used AI to excel beyond the mechanics of coding. Others struggled in ways I did not expect.
I reflect on my blog: jean.fan/2026/03/15/v...
At the time (by year as a coarse cutoff). Relevant code is in `async function countPriorWorks(authorId, beforeYear)`
Else, first authors who stay in academia (continue publishing) will have high pub counts vs those who leave (no longer publish). The metric would capture something very different.
Awesome!
Yes, I rely on openalex.org
There are definitely some double counts (particularly preprints).
Also if either your name or your trainee's name is very common, I currently do not do anything to disambiguate contributions from other people with the same name.
So, try it out for yourself! See if you can design a metric around what you believe is important.
See my blog for more thoughts: jef.works/blog/2026/03...
Or fork the code on GitHub to make your own: github.com/JEFworks-Lab...
The M-index isn’t meant to replace holistic evaluation of mentoring abilities. But such metrics can help surface something I care about in ways that existing metrics like the h-index doesn’t capture.
If we don’t create metrics that reflect our values, we cede that ground to metrics that may not.
To put this Mentorship Index to the test, I applied it to evaluate 2 colleagues 😜
h-index: Manolis wins (170 vs 88)
M10-index: Lior wins (106 vs 38)
Both have invested in achieving different kinds of accomplishments, which can be reflected in these different metrics.
My approach: I use openalex.org to count the # of publications for which the scientist served as last author (senior/mentoring role) where the first author (the mentee who led the work) was relatively new to science (proxied by the # of publications associated with their name at that time).
So what do we care about in a senior faculty recruit?
For me: mentorship of junior scientists (not just recruiting already-polished senior postdocs). But how do we quantify that?
We're recruiting senior faculty! So at faculty meeting, a colleague brought up a candidate who has an h-index of 100. Impressive! But then another colleague pointed out: their last senior-author paper was 10 years ago.
This got me thinking about what metrics actually capture and what they miss.
As an alternative to the h-index, I made the Mentorship Index (M-index) to proxy a scientist's contribution to mentoring junior scientists. Ex. M10-index = # last-author publications where the first author had < 10 pubs.
Calculate yours: jef.works/Mentorship-I...
Blog: jef.works/blog/2026/03...
🧵👇
Check out our preprint with more details, quantifiable metrics, insufficiencies of data imputation, and other insights: www.biorxiv.org/content/10.1...
Work led by Caleb Hallinan 🥳 4/4
Previous thread: bsky.app/profile/jef....
We've now updated our preprint to expand on these results to further demonstrate that these data quality-driven effects are reproducible across:
✅ More spatial transcriptomics datasets
✅ More spatial transcriptomics technologies
✅ Different feature extractors
✅ Alternative model architectures
3/n
We previously showed how improving data quality (molecular detection sensitivity, imaging resolution, etc) provides an orthogonal strategy to tuning model architecture in spatial transcriptomics-based predictive modeling. But data imputation intended to improve data quality led to overfitting. 2/n
We previously showed how changing training data alone can improve deep learning prediction of spatial transcriptomics gene expression from histology images by +38% (without any changes to model architecture).
We've now updated our preprint w/ expanded results: www.biorxiv.org/content/10.1...
🧵1/n
I walk through how I vibe → inspect → rethink → hand-fix logic errors → visualize → zero in on genes with quantifiably different spatial patterns between Visium and Xenium that suggest off-target binding.
STcompare: github.com/JEFworks-Lab...
Additional reading: elifesciences.org/reviewed-pre...
In this blog post, I vibe code to apply STcompare to kidneys assayed by two different spatial transcriptomics technologies (Visium vs. Xenium) to identify spatially consistent and differentially patterned genes.
Follow along + try it out for yourself: jef.works/blog/2026/02...
By shedding light on off-target probe binding + providing a tool to enable prediction, we hope this work will enhance the quality of + improve reproducibility in spatial transcriptomics research
🙌 Caleb Hallinan + team
Previous post: bsky.app/profile/jef....
We thank the editors and reviewers at eLife for their feedback. You can check out their public peer review comments here: elifesciences.org/reviewed-pre...
We added new tutorials for our OPT (off-target probe-tracker) tool that aligns probe sequences to transcript sequences to detect potential off-target probe activity: github.com/JEFworks-Lab...
Finally, we emphasize that such off-target binding may similarly affect other probe-based gene detection approaches from other commercial vendors given sensitivity vs. specificity tradeoffs. We therefore emphasize the importance of transparency through sharing probe sequences.
We also now demonstrate how to leverage tissue-specific gene expression from atlasing resources like HuBMAP to assess how off-target binding might affect observed gene expression profiles in a specific tissue of interest for custom gene panels.
We now clarify the differences between these probe sequences in a new supplementary note. Importantly, this impacts our interpretation of observed results to provide stronger evidence of putative imperfect sequence homology based off-target probe binding.
Previously, we used the publicly available Xenium v1 Human Breast Panel probe sequences from the 10x website (pre-April 2025). We now understand that this file erroneously included extra probe sequences that aren't actually used.
We recently updated our paper demonstrating evidence of off-target probe binding affecting the 10x Genomics Xenium spatial transcriptomics platform with key clarifications, new quantifications, and approaches for evaluating custom gene panels: biorxiv.org/content/10.1...
🧵👇1/n
Surely we can get an LLM to automate the update according to some new set of specified standards so we can get back to doing actual research 🫠
As I'm updating my NIH Biosketch for the N-th time this year, I made a Jekyll theme for students to familiarize themselves with this CV structure while building their online presence.
Demo: jefworks.github.io/online-biosk...
Fork to modify: github.com/JEFworks/onl...
#JustAcademicThings
I never got good at CSS box model (parent-child dynamics, relative/absolute/fixed positions, etc).
Vibe coding let me mentally offload those mechanics to refocus on creative design.
Made this to showcase my photos of vintage cameras/microscopes/slides. Check it out: microspeci.men
Thanks to the authors for sharing all components of this beautiful mouse embryo spatial transcriptomics data from cell gene counts to per-molecule coordinates: www.ahajournals.org/doi/full/10....
So I vibe coded an app to explore the 3D subcellular transcript organization: jef.works/CellCarto-Mo...
I've seen some cool gesture-based point cloud controllers.
So I noted the JS libraries used and vibe coded a similar web app to explore the relationship between spatial, UMAP, and PCA embeddings for spatial transcriptomics data. Next level interactivity via 🖐️
Try it out: jef.works/GestureGraph/