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

Innate T cell RNA-seq Data Viewer

GitHub Play

View the expression of a single gene in single-cell RNA-seq and bulk RNA-seq data across 7 types of T cells from Gutierrez-Arcelus et al. 2018. Implemented with R, Shiny, and Javascript.

Please feel free to download the figures and cite:

Gutierrez-Arcelus, M., Teslovich, N., Mola, A. R. & Kim, H. A genome-wide innateness gradient defines the functional state of human innate T cells. bioRxiv (2018). doi:10.1101/280370

AMP Phase 1 RA/SLE Data Viewer

GitHub Play

View the expression of a single gene across single-cell RNA-seq, bulk RNA-seq, and mass cytometry data from the AMP RA/SLE Network. Implemented with R and Shiny.

Please feel free to download the figures and cite:

Zhang, F. et al. Defining Inflammatory Cell States in Rheumatoid Arthritis Joint Synovial Tissues by Integrating Single-cell Transcriptomics and Mass Cytometry. bioRxiv 351130 (2018). doi:10.1101/351130

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 Play

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 Play

A Javascript animation of colorful circles.

Barnsley Fern

GitHub Play

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