Learn R Programming

ggmuller

Create Muller Plots of Evolutionary Dynamics

Installation

To install the CRAN version:

install.packages("ggmuller")
library(ggmuller)

To install the github version using devtools:

install.packages("devtools")
library(devtools)
  
install_github("robjohnnoble/ggmuller")
library(ggmuller)

Basic usage

The main functions in ggmuller are get_Muller_df and Muller_plot, which we can run on some data included in the package:

# reformat data ready for plotting:
Muller_df <- get_Muller_df(example_edges, example_pop_df)

# generate the plot:
Muller_plot(Muller_df)

How-to guides

The best place to start is the CRAN vignette, which includes an overview of features and some worked examples.

An older, slightly different set of instructions can be found in a blog post on Visualizing evolutionary dynamics with ggmuller.

Version history

0.5.6: Avoid loading or importing ape package, to avoid namespace conflict between ape and dplyr.

0.5.5: Optional removal of rare types is now much more efficient for large data sets.

0.5.4: Fix a rare bug; add tip labels to trees.

0.5.3: get_Muller_df now fills all columns when adding missing rows (issue #10); polygon edges now aren't drawn by default.

0.5.2: Can cope with the special case of only one genotype.

0.5.1: Can use brewer palettes.

0.5: Smoother plots from sparse data; time column can now be called "Time" instead of "Generation"; replace missing population sizes with zeroes.

0.4: Smoother plotting by default when genotypes suddenly grow from zero to large frequencies; new "start_positions" parameter can be used to override this default.

0.3: Bug fixes; in particular, the "threshold" option is replaced by "cutoff" (genotypes whose abundance never exceeds "cutoff" are removed, whereas previously genotypes whose abundance never exceeded twice "threshold" were removed).

0.2.2: Bug fixes and deprecation of superfluous options.

0.2.1: Correct mistake in calculating population sizes for Muller_pop_plot.

0.2.0: New function Muller_pop_plot shows variation in population size as well as frequency (also known as a fish plot).

0.1.3: Compatibility with dplyr version 0.7.2; add option for smoother plotting of genotype emergence points.

0.1.2: Better plotting of the points at which genotypes emerge.

0.1.1: Essential update for compatibility with ggplot2 version 2.2.0.

0.1.0: First release.

Citation

To cite ggmuller in publications please use

Robert Noble (2019). ggmuller: Create Muller Plots of Evolutionary Dynamics. R package version 0.5.3. doi:10.5281/zenodo.591304 https://CRAN.R-project.org/package=ggmuller

A BibTeX entry for LaTeX users is

@Manual{,
title = {ggmuller: Create Muller Plots of Evolutionary Dynamics},
author = {Robert Noble},
year = {2019},
note = {R package version 0.5.3},
url = {https://CRAN.R-project.org/package=ggmuller},
doi = 10.5281/zenodo.591304
}

Please amend the version number as appropriate.

Copy Link

Version

Install

install.packages('ggmuller')

Monthly Downloads

510

Version

0.5.6

License

MIT + file LICENSE

Maintainer

Robert Noble

Last Published

February 12th, 2023

Functions in ggmuller (0.5.6)

path_vector

Record a path through all nodes of an adjacency matrix
find_start_node

Move to top of adjacency matrix
example_pop_df

Example population dataframe
get_population_df

Extract population data from a larger data frame
reorder_by_vector

Reorder a Muller plot dataframe by a vector
move_down

Move to daughter in adjacency matrix
get_edges

Extract an adjacency matrix from a larger data frame
get_Muller_df

Create a data frame from which to create a Muller plot
example_df

Example dataframe
Muller_plot

Draw a Muller plot of frequencies using ggplot2
adj_matrix_to_tree

Create a tree object of class "phylo" from an adjacency matrix
add_empty_pop

Modify a dataframe to enable plotting of populations instead of frequencies
Muller_pop_plot

Draw a Muller plot of population sizes using ggplot2
add_start_points

Add rows to a population dataframe to ensure genotype starting points are plotted correctly
branch_singles

Add branches of length zero to get rid of single nodes in an adjacency matrix
example_edges

Example adjacency matrix
move_right

Move to sibling in adjacency matrix
move_up

Move to parent in adjacency matrix