gl.plot.structure {dartR.popgen} | R Documentation |
Plots STRUCTURE analysis results (Q-matrix)
Description
This function takes a structure run object (output from
gl.run.structure
) and plots the typical structure bar
plot that visualize the q matrix of a structure run.
Usage
gl.plot.structure(
sr,
K = NULL,
met_clumpp = "greedyLargeK",
iter_clumpp = 100,
clumpak = TRUE,
plot_theme = NULL,
color_clusters = NULL,
ind_name = TRUE,
k_name = NULL,
border_ind = 0.15,
den = FALSE,
dis.mat = NULL,
x = NULL,
plot.out = TRUE,
plot.file = NULL,
plot.dir = NULL,
verbose = NULL
)
Arguments
sr |
Structure run object from |
K |
The number for K of the q matrix that should be plotted. Needs to be within you simulated range of K's in your sr structure run object. If NULL, all the K's are plotted [default NULL]. |
met_clumpp |
The algorithm to use to infer the correct permutations. One of 'greedy' or 'greedyLargeK' or 'stephens' [default "greedyLargeK"]. |
iter_clumpp |
The number of iterations to use if running either 'greedy' 'greedyLargeK' [default 100]. |
clumpak |
Whether use the Clumpak method (see details) [default TRUE]. |
plot_theme |
Theme for the plot. See Details for options [default NULL]. |
color_clusters |
A color palette for clusters (K) or a list with as many colors as there are clusters (K) [default NULL]. |
ind_name |
Whether to plot individual names [default TRUE]. |
k_name |
Name of the structure plot to plot. It should be character [default NULL]. |
border_ind |
The width of the border line between individuals [default 0.25]. |
den |
Whether to include a dendrogram. It is necessary to include the original genlight object used in gl.run.structure in the parameter x [default FALSE]. |
dis.mat |
A dis object (distance matrix) to be used to order structure plot which is plotted together with structure plot [default NULL]. |
x |
The original genlight object used in gl.run.structure description [default NULL]. |
plot.out |
Specify if plot is to be produced [default TRUE]. |
plot.file |
Name for the RDS binary file to save (base name only, exclude extension) [default NULL] |
plot.dir |
Directory in which to save files [default = working directory] |
verbose |
Verbosity: 0, silent or fatal errors; 1, begin and end; 2, progress log ; 3, progress and results summary; 5, full report [default NULL, unless specified using gl.set.verbosity] |
Details
The function outputs a barplot which is the typical output of structure. For a Evanno plot use gl.evanno.
This function is based on the methods of CLUMPP and Clumpak as implemented in the R package starmie (https://github.com/sa-lee/starmie).
The Clumpak method identifies sets of highly similar runs among all the replicates of the same K. The method then separates the distinct groups of runs representing distinct modes in the space of possible solutions.
The CLUMPP method permutes the clusters output by independent runs of clustering programs such as structure, so that they match up as closely as possible.
This function averages the replicates within each mode identified by the Clumpak method.
Plots and table are saved to the working directory specified in plot.dir (tempdir ) if plot.file is set.
Examples of other themes that can be used can be consulted in
Value
List of Q-matrices
Author(s)
Bernd Gruber & Luis Mijangos (Post to https://groups.google.com/d/forum/dartr)
References
Pritchard, J.K., Stephens, M., Donnelly, P. (2000) Inference of population structure using multilocus genotype data. Genetics 155, 945-959.
Kopelman, Naama M., et al. "Clumpak: a program for identifying clustering modes and packaging population structure inferences across K." Molecular ecology resources 15.5 (2015): 1179-1191.
Mattias Jakobsson and Noah A. Rosenberg. 2007. CLUMPP: a cluster matching and permutation program for dealing with label switching and multimodality in analysis of population structure. Bioinformatics 23(14):1801-1806. Available at clumpp
See Also
gl.run.structure
, gl.plot.structure
Examples
# examples need structure to be installed on the system (see above)
## Not run:
bc <- bandicoot.gl[,1:100]
sr <- gl.run.structure(bc, k.range = 2:5, num.k.rep = 3, exec = './structure')
ev <- gl.evanno(sr)
ev
qmat <- gl.plot.structure(sr, K=3)
head(qmat)
gl.map.structure(qmat, K=3, bc, scalex=1, scaley=0.5)
## End(Not run)