GitHub Slides

CRAN_Status_Badge CRAN_Downloads_Badge

ggrepel is an R package that provides geoms for ggplot2 to repel overlapping text labels:

  • geom_text_repel()
  • geom_label_repel()

Text labels repel away from each other, away from data points, and away from edges of the plotting area.

ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars))) +
 geom_text_repel() +
 geom_point(color = 'red') +
 theme_classic(base_size = 16)



SNPSEA is a SNP Set Enrichment Algorithm to identify which cell types preferentially express the genes that are associated with a trait.

Input files:
  1. A list of genome-wide significant SNP identifiers (e.g. rs42) from a genome-wide association study (GWAS) on your preferred trait.
  2. A (NxM) matrix of gene expression values for all genes (N) across a large number (M) of cell types.

Figure 1

SNPSEA compares the trait-associated single-nucleotide polymorphisms (SNPs) to randomly sampled SNPs while accounting for linkage disequilibrium (LD). It's implemented in C++ with executables available for macOS or Linux.

Web apps


View the primary genomics data from several biomedical research studies. I developed all of the data visualizations on this site with R and Javascript. You can view bulk RNA-seq, single-cell RNA-seq, and mass cytometry data.


Quickly turn a messy list of genes or SNPs into a tidy table with symbols, links, and identifiers.

Volunteer Activities


At CuSTEMized, we make one-of-a-kind personalized children's books about scientific careers. CuSTEMized is a 501c3 non-profit created by Jean Fan.

Kamil with bear

I help develop the website and maintain the server. Do you want to help out? Let us know.

Just for Fun


GitHub View

Find proxies for your favorite single nucleotide polymorphism (SNP). This is a simple HTML and Javascript page that uses some tricks to query the variants in the 1000 Genomes Project and compute linkage disequilibrium (LD) in the web browser.



A Javascript animation of a doodle made with Perlin noise, inspired by Matt DesLauriers.


GitHub View

A Javascript animation of colorful circles.

Barnsley Fern

GitHub View

A Javascript animation of the Barnsley Fern, inspired by Chaos Game - Numberphile.