pong: fast analysis and visualization of latent clusters in population genetic data

Bioinformatics. 2016 Sep 15;32(18):2817-23. doi: 10.1093/bioinformatics/btw327. Epub 2016 Jun 9.

Abstract

Motivation: A series of methods in population genetics use multilocus genotype data to assign individuals membership in latent clusters. These methods belong to a broad class of mixed-membership models, such as latent Dirichlet allocation used to analyze text corpora. Inference from mixed-membership models can produce different output matrices when repeatedly applied to the same inputs, and the number of latent clusters is a parameter that is often varied in the analysis pipeline. For these reasons, quantifying, visualizing, and annotating the output from mixed-membership models are bottlenecks for investigators across multiple disciplines from ecology to text data mining.

Results: We introduce pong, a network-graphical approach for analyzing and visualizing membership in latent clusters with a native interactive D3.js visualization. pong leverages efficient algorithms for solving the Assignment Problem to dramatically reduce runtime while increasing accuracy compared with other methods that process output from mixed-membership models. We apply pong to 225 705 unlinked genome-wide single-nucleotide variants from 2426 unrelated individuals in the 1000 Genomes Project, and identify previously overlooked aspects of global human population structure. We show that pong outpaces current solutions by more than an order of magnitude in runtime while providing a customizable and interactive visualization of population structure that is more accurate than those produced by current tools.

Availability and implementation: pong is freely available and can be installed using the Python package management system pip. pong's source code is available at https://github.com/abehr/pong

Contact: aaron_behr@alumni.brown.edu or sramachandran@brown.edu

Supplementary information: Supplementary data are available at Bioinformatics online.

MeSH terms

  • Algorithms
  • Cluster Analysis
  • Computer Graphics
  • Data Mining*
  • Genetics, Population
  • Humans
  • Population Groups*
  • Programming Languages
  • Protein Conformation
  • Software*