Title: | Categorical Analysis of Neo- And Paleo-Endemism |
---|---|
Description: | Provides functions to analyze the spatial distribution of biodiversity, in particular categorical analysis of neo- and paleo-endemism (CANAPE) as described in Mishler et al (2014) <doi:10.1038/ncomms5473>. 'canaper' conducts statistical tests to determine the types of endemism that occur in a study area while accounting for the evolutionary relationships of species. |
Authors: | Joel H. Nitta [aut, cre] |
Maintainer: | Joel H. Nitta <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.0.1.9000 |
Built: | 2024-08-29 22:57:18 UTC |
Source: | https://github.com/ropensci/canaper |
Dataset of Australian Acacia from Mishler et al. 2014 (Nat. Comm.)
acacia
acacia
A list with two elements:
Phylogeny of Australian Acacia (list of class "phylo"). Tip labels are specific epithet, except for the outgroup, which includes genus and specific epithet. Includes 508 ingroup taxa (genus Acacia) and two outgroup taxa.
Community matrix of Australian Acacia (dataframe). Column names are specific epithet of each species. Row names are centroids of 50km grid cells in Australian Albers equal area EPSG:3577 projection. 3037 rows (sites) x 506 columns (species). Data are counts, i.e., the number of times a species was observed in a grid cell.
Mishler, B., Knerr, N., González-Orozco, C. et al. Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun 5, 4473 (2014). doi:10.1038/ncomms5473
# Example phylogeny acacia$phy # Example community acacia$comm[1:5, 1:5]
# Example phylogeny acacia$phy # Example community acacia$comm[1:5, 1:5]
Fictional data for testing purposes from Biodiverse.
biod_example
biod_example
A list with two elements:
Phylogeny with 31 tips
Community matrix with 127 sites and 31 species. Data are counts, i.e., the number of times a species was observed in a grid cell.
Corresponds to the the community matrix ("groups" object) and phylogeny from the Biodiverse example_project.bps. # nolint
Laffan, S.W., Lubarsky, E. & Rosauer, D.F. (2010) Biodiverse, a tool for the spatial analysis of biological and related diversity. Ecography. Vol 33, 643-647 (Version 3.1). doi:10.1111/j.1600-0587.2010.06237.x
# Example phylogeny biod_example$phy # Example community biod_example$comm[1:5, 1:5]
# Example phylogeny biod_example$phy # Example community biod_example$comm[1:5, 1:5]
Output of analyzing test data with Biodiverse.
biod_results
biod_results
A tibble (dataframe) with 127 rows and 7 columns. Columns include:
Site name; corresponds to row names of
biod_example$comm
Phylogenetic diversity (PD; PD_P
in Biodiverse)
Alternative PD (PD measured on tree with all
branchlengths equal; PHYLO_RPD_NULL2
in Biodiverse)
Relative PD (PD divided by alternative PD;
PHYLO_RPD_NULL2
in Biodiverse)
Phylogenetic endemism (PE; PE_WE_P
in Biodiverse)
Alternative PE (PE measured on tree with all
branchlengths equal; PHYLO_RPE_NULL2
in Biodiverse)
Relative PE (PE divided by alternative PD;
PHYLO_RPE2
in Biodiverse)
The example_project.bps # nolint
example data set was used as input,which corresponds to the
biod_example
dataset in this package.
For a description of all Biodiverse metrics, see the Biodiverse wiki. # nolint
Laffan, S.W., Lubarsky, E. & Rosauer, D.F. (2010) Biodiverse, a tool for the spatial analysis of biological and related diversity. Ecography. Vol 33, 643-647 (Version 3.1). doi:10.1111/j.1600-0587.2010.06237.x
biod_results
biod_results
Given the results of cpr_rand_test()
, classifies phylogenetic endemism
according to CANAPE scheme of Mishler et al. 2014.
cpr_classify_endem(df)
cpr_classify_endem(df)
df |
Input data frame. Must have the following columns:
|
For a summary of the classification scheme, see: http://biodiverse-analysis-software.blogspot.com/2014/11/canape-categorical-analysis-of-palaeo.html # nolint
Object of class data.frame with column endem_type
(character)
added. Values of endem_type
type include paleo
(paleoendemic), neo
(neoendemic), not significant
(what it says), mixed
(mixed endemism),
and super
(super-endemic; both pe_obs
and pe_obs_alt
are highly
significant).
Mishler, B., Knerr, N., González-Orozco, C. et al. (2014) Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun, 5: 4473. doi:10.1038/ncomms5473
set.seed(12345) data(phylocom) rand_test <- cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = c("pe", "rpe"), n_reps = 10 ) cpr_classify_endem(rand_test)
set.seed(12345) data(phylocom) rand_test <- cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = c("pe", "rpe"), n_reps = 10 ) cpr_classify_endem(rand_test)
Given the results of cpr_rand_test()
, classifies statistical significance
of a biodiversity metric. The null hypothesis is that observed value does not
lie in the extreme of the random values.
cpr_classify_signif(df, metric, one_sided = FALSE, upper = FALSE)
cpr_classify_signif(df, metric, one_sided = FALSE, upper = FALSE)
df |
Input data frame. |
metric |
Character vector of length 1; selected metric to classify
significance. May choose from |
one_sided |
Logical vector of length 1; is the null hypothesis
one-sided? If |
upper |
Logical vector of length 1; only applies if |
For metrics like pe
, you probably want to consider a one-sided
hypothesis testing values in the upper extreme (i.e., we are interested in
areas that have higher than expected endemism). For this, you would set
one_sided = TRUE, upper = TRUE
. For metrics like pd
, you probably want
to consider a two-sided hypothesis (i.e., we are interested in areas that
are either more diverse or less than diverse than expected at random). For
this, set one_sided = FALSE
.
Object of class data.frame with column added for statistical
significance of the selected metric. The new column name is the name of the
metric with _signif
appended. The new column is a character that may
contain the following values, depending on the null hypothesis:
< 0.01
, < 0.025
, > 0.975
, > 0.99
, not significant
(two-sided)
< 0.01
, < 0.05
, > 0.99
, > 0.95
, not significant
(one-sided)
set.seed(12345) data(phylocom) rand_test <- cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = "pd", n_reps = 50 ) cpr_classify_signif(rand_test, "pd")
set.seed(12345) data(phylocom) rand_test <- cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = "pd", n_reps = 50 ) cpr_classify_signif(rand_test, "pd")
Character vector with names corresponding to endemism types and values corresponding to color codes. Should be distinguishable to people with color vision deficiency (CVD).
cpr_endem_cols
cpr_endem_cols
An object of class character
of length 5.
Color scheme:
paleo: dark blue
neo: red
not significant: beige
mixed: green
super: yellow
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_endem_cols scales::show_col(cpr_endem_cols)
cpr_endem_cols scales::show_col(cpr_endem_cols)
Character vector with names corresponding to endemism types and values corresponding to color codes. Should be distinguishable to people with color vision deficiency (CVD).
cpr_endem_cols_2
cpr_endem_cols_2
An object of class character
of length 5.
Color scheme:
paleo: dark blue
neo: red
not significant: light grey
mixed: green
super: yellow
Other colors:
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_endem_cols_2 scales::show_col(cpr_endem_cols_2)
cpr_endem_cols_2 scales::show_col(cpr_endem_cols_2)
Character vector with names corresponding to endemism types and values corresponding to color codes. Should be distinguishable to people with color vision deficiency (CVD).
cpr_endem_cols_3
cpr_endem_cols_3
An object of class character
of length 5.
Color scheme:
paleo: dark blue
neo: red
not significant: light grey
mixed: green
super: orange
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_endem_cols_3 scales::show_col(cpr_endem_cols_3)
cpr_endem_cols_3 scales::show_col(cpr_endem_cols_3)
Character vector with names corresponding to endemism types and values corresponding to color codes. Should be distinguishable to people with color vision deficiency (CVD).
cpr_endem_cols_4
cpr_endem_cols_4
An object of class character
of length 5.
Color scheme:
paleo: light blue
neo: red
not significant: light grey
mixed: green
super: yellow
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_endem_cols_4 scales::show_col(cpr_endem_cols_4)
cpr_endem_cols_4 scales::show_col(cpr_endem_cols_4)
For randomization algorithms that involve swapping (iterations), there is no
way to know a-priori how many iterations are needed to sufficiently "mix"
the community data matrix. cpr_iter_sim()
records the percentage similarity
between the original matrix and a matrix that has been randomized with
successive swapping iterations, at each iteration.
cpr_iter_sim( comm, null_model = "curveball", n_iterations = 100, thin = 1, seed = NULL )
cpr_iter_sim( comm, null_model = "curveball", n_iterations = 100, thin = 1, seed = NULL )
comm |
Dataframe or matrix; input community data with sites (communities) as rows and species as columns. Values of each cell are the presence/absence (0 or 1) or number of individuals (abundance) of each species in each site. |
null_model |
Character vector of length 1 or object of class |
n_iterations |
Numeric vector of length 1; maximum number of iterations to conduct. |
thin |
Numeric vector of length 1; frequency to record percentage
similarity between original matrix and randomized matrix. Results will
be recorded every |
seed |
Integer vector of length 1 or NULL; random seed that will be used
in a call to |
The user should inspect the results to determine at what number of iterations the original matrix and randomized matrix reach maximum dissimilarity (see Examples). This number will strongly depend on the size and structure of the original matrix. Large matrices with many zeros will likely take more iterations, and even then still retain relatively high similarity between the original matrix and the randomized matrix.
Available memory may be quickly exhausted if many (e.g., tens or hundreds of
thousands, or more) of iterations are used with no thinning on large
matrices; use thin
to only record a portion of the results and save on
memory.
Of course, cpr_iter_sim()
only makes sense for randomization algorithms
that use iterations.
Only presence/absence information is used to calculate percentage similarity between community matrices.
Tibble (dataframe) with the following columns:
iteration
: Number of iterations used to generate random community
similarity
: Percentage similarity between original community and
random community
# Simulate generation of a random community with maximum of 10,000 # iterations, recording similarity every 100 iterations (res <- cpr_iter_sim( comm = biod_example$comm, null_model = "swap", n_iterations = 10000, thin = 100, seed = 123 )) # Plot reveals that ca. 1000 iterations are sufficient to # completely mix random community plot(res$iteration, res$similarity, type = "l")
# Simulate generation of a random community with maximum of 10,000 # iterations, recording similarity every 100 iterations (res <- cpr_iter_sim( comm = biod_example$comm, null_model = "swap", n_iterations = 10000, thin = 100, seed = 123 )) # Plot reveals that ca. 1000 iterations are sufficient to # completely mix random community plot(res$iteration, res$similarity, type = "l")
Palettes can also be loaded by name directly (see "Other colors" below).
cpr_make_pal(name, type)
cpr_make_pal(name, type)
name |
Character vector of length 1; name of palette to select. Must be one of 'mishler2014', 'canaper1', 'canaper2', 'canaper3', or 'canaper4' |
type |
Character vector of length 1; type of palette to select. Must be one of 'endem' (endemism) or 'signif' (p-rank significance) |
Palettes with the name 'mishler2014' correspond to colors used in Mishler et al. 2014. This color scheme has been widely used to show CANAPE results, but some colors may not be distinguishable to people with color vision deficiency (CVD).
Palettes with the name 'canaper1' or 'canaper2' are based on the Okabe-Ito palette (endemism; Okabe & Ito 2002) or RColorBrewer (significance) and should be CVD-friendly.
Names of colors correspond to either endemism type or
p-rank output by cpr_classify_endem()
or cpr_classify_signif()
,
respectively. Not all names are all available for both types.
Named character vector; color hex codes
Mishler, B., Knerr, N., González-Orozco, C. et al. (2014) Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun, 5: 4473. doi:10.1038/ncomms5473
Okabe, M., & Ito, K. (2002) Color Universal Design (CUD) - How to make figures and presentations that are friendly to Colorblind people. J*FLY Data Depository for Drosophila Researchers. https://jfly.uni-koeln.de/color/
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_make_pal("mishler2014", "endem") cpr_make_pal("canaper1", "endem") scales::show_col(cpr_make_pal("mishler2014", "endem"))
cpr_make_pal("mishler2014", "endem") cpr_make_pal("canaper1", "endem") scales::show_col(cpr_make_pal("mishler2014", "endem"))
Note that binary null models return a binary matrix, even if an abundance matrix was used as input.
cpr_rand_comm(comm, null_model, n_iterations = 1, thin = 1, seed = NULL)
cpr_rand_comm(comm, null_model, n_iterations = 1, thin = 1, seed = NULL)
comm |
Dataframe or matrix; input community data with sites (communities) as rows and species as columns. Values of each cell are the presence/absence (0 or 1) or number of individuals (abundance) of each species in each site. |
null_model |
Character vector of length 1 or object of class |
n_iterations |
Numeric vector of length 1; number of iterations for sequential null models. Ignored by non-sequential null models. |
thin |
Numeric vector of length 1; thinning parameter used by some
null models in |
seed |
Integer vector of length 1 or NULL; random seed that will be used
in a call to |
Matrix
set.seed(12345) # Check list of available pre-defined null models in vegan vegan::make.commsim() # Binary null model produces binary output data(phylocom) cpr_rand_comm(phylocom$comm, "swap", 100) # Quantitative null model produces quantitative output cpr_rand_comm(phylocom$comm, "swap_count", 100) # How to use a custom null model # 1. Define a randomizing function, e.g. re-sample the matrix while # preserving total number of presences (same as the "r00" model) randomizer <- function(x, n, ...) { array(replicate(n, sample(x)), c(dim(x), n)) } # 2. Generate a commsim object cs_object <- vegan::commsim( "r00_model", fun = randomizer, binary = TRUE, isSeq = FALSE, mode = "integer" ) # 3. Generate the null community cpr_rand_comm(phylocom$comm, cs_object, 100)
set.seed(12345) # Check list of available pre-defined null models in vegan vegan::make.commsim() # Binary null model produces binary output data(phylocom) cpr_rand_comm(phylocom$comm, "swap", 100) # Quantitative null model produces quantitative output cpr_rand_comm(phylocom$comm, "swap_count", 100) # How to use a custom null model # 1. Define a randomizing function, e.g. re-sample the matrix while # preserving total number of presences (same as the "r00" model) randomizer <- function(x, n, ...) { array(replicate(n, sample(x)), c(dim(x), n)) } # 2. Generate a commsim object cs_object <- vegan::commsim( "r00_model", fun = randomizer, binary = TRUE, isSeq = FALSE, mode = "integer" ) # 3. Generate the null community cpr_rand_comm(phylocom$comm, cs_object, 100)
The observed value of the biodiversity metric(s) will be calculated for the input community data, then compared against a set of random communities. Various statistics are calculated from the comparison (see Value below).
cpr_rand_test( comm, phy, null_model, n_reps = 100, n_iterations = 10000, thin = 1, metrics = c("pd", "rpd", "pe", "rpe"), site_col = "site", tbl_out = tibble::is_tibble(comm), quiet = FALSE )
cpr_rand_test( comm, phy, null_model, n_reps = 100, n_iterations = 10000, thin = 1, metrics = c("pd", "rpd", "pe", "rpe"), site_col = "site", tbl_out = tibble::is_tibble(comm), quiet = FALSE )
comm |
Dataframe, tibble, or matrix; input community data with sites (communities) as rows and species as columns. Either presence-absence data (values only 0s or 1s) or abundance data (values >= 0) accepted, but calculations do not use abundance-weighting, so results from abundance data will be the same as if converted to presence-absence before analysis. |
phy |
List of class |
null_model |
Character vector of length 1 or object of class |
n_reps |
Numeric vector of length 1; number of random communities to replicate. |
n_iterations |
Numeric vector of length 1; number of iterations to use for sequential null models; ignored for non-sequential models. |
thin |
Numeric vector of length 1; thinning parameter used by some
null models in |
metrics |
Character vector; names of biodiversity metrics to calculate.
May include one or more of: |
site_col |
Character vector of length 1; name of column in |
tbl_out |
Logical vector of length 1; should the output be returned as
a tibble? If |
quiet |
Logical vector of length 1; if |
The biodiversity metrics (metrics
) available for analysis include:
pd
: Phylogenetic diversity (Faith 1992)
rpd
: Relative phylogenetic diversity (Mishler et al 2014)
pe
: Phylogenetic endemism (Rosauer et al 2009)
rpe
: Relative phylogenetic endemism (Mishler et al 2014)
(pe
and rpe
are needed for CANAPE with
cpr_classify_endem()
)
The choice of a randomization algorithm (null_model
) is not trivial, and
may strongly affect results. cpr_rand_test()
uses null models provided by
vegan
; for a complete list, see the help file of vegan::commsim()
or run
vegan::make.commsim()
. One frequently used null model is swap
(Gotelli &
Entsminger 2003), which randomizes the community matrix while preserving
column and row sums (marginal sums). For a review of various null models, see
Strona et al. (2018); swap
is an "FF" model in the sense of Strona et al.
(2018).
Instead of using one of the predefined null models in vegan::commsim()
, it
is also possible to define a custom null model; see Examples in
cpr_rand_comm()
Note that the pre-defined models in vegan
include binary models (designed
for presence-absence data) and quantitative models (designed for abundance
data). Although the binary models will accept abundance data, they treat it
as binary and always return a binary (presence-absence) matrix. The PD and PE
calculations in canaper
are not abundance-weighted, so they return the same
result regardless of whether the input is presence-absence or abundance. In
that sense, binary null models are appropriate for cpr_rand_test()
. The
quantitative models could also be used for abundance data, but the output
will be treated as binary anyways when calculating PD and PE. The effects of
using binary vs. quantitative null models for cpr_rand_test()
have not been
investigated.
A minimum of 5 species and sites are required as input; fewer than that is
likely cause the some randomization algorithms (e.g., swap
) to enter an
infinite loop. Besides, inferences on very small numbers of species and/or
sites is not recommended generally.
The following rules apply to comm
input:
If dataframe or matrix, must include row names (site names) and column names (species names).
If tibble, a single column (default, site
) must be included with site
names, and other columns must correspond to species names.
Column names cannot start with a number and must be unique.
Row names (site names) must be unique.
Values (other than site names) should only include integers >= 0; non-integer input will be converted to integer.
The results are identical regardless of whether the input for comm
is
abundance or presence-absence data (i.e., abundance weighting is not used).
Dataframe. For each of the biodiversity metrics, the following 9 columns will be produced:
*_obs
: Observed value
*_obs_c_lower
: Count of times observed value was lower than random values
*_obs_c_upper
: Count of times observed value was higher than random
values
*_obs_p_lower
: Percentage of times observed value was lower than random
values
*_obs_p_upper
: Percentage of times observed value was higher than random
values
*_obs_q
: Count of the non-NA random values used for comparison
*_obs_z
: Standard effect size (z-score)
*_rand_mean
: Mean of the random values
*_rand_sd
: Standard deviation of the random values
So if you included pd
in metrics
, the output columns would include
pd_obs
, pd_obs_c_lower
, etc...
Faith DP (1992) Conservation evaluation and phylogenetic diversity. Biological Conservation, 61:1–10. doi:10.1016/0006-3207(92)91201-3
Gotelli, N.J. and Entsminger, N.J. (2003). Swap algorithms in null model analysis. Ecology 84, 532–535.
Mishler, B., Knerr, N., González-Orozco, C. et al. (2014) Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun, 5: 4473. doi:10.1038/ncomms5473
Rosauer, D., Laffan, S.W., Crisp, M.D., Donnellan, S.C. and Cook, L.G. (2009) Phylogenetic endemism: a new approach for identifying geographical concentrations of evolutionary history. Molecular Ecology, 18: 4061-4072. doi:10.1111/j.1365-294X.2009.04311.x
Strona, G., Ulrich, W. and Gotelli, N.J. (2018), Bi-dimensional null model analysis of presence-absence binary matrices. Ecology, 99: 103-115. doi:10.1002/ecy.2043
set.seed(12345) data(phylocom) # Returns a dataframe by defualt cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = "pd", n_reps = 10 ) # Tibbles may be preferable because of the large number of columns cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", tbl_out = TRUE, n_reps = 10 )
set.seed(12345) data(phylocom) # Returns a dataframe by defualt cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", metrics = "pd", n_reps = 10 ) # Tibbles may be preferable because of the large number of columns cpr_rand_test( phylocom$comm, phylocom$phy, null_model = "curveball", tbl_out = TRUE, n_reps = 10 )
Character vector with names corresponding to significance levels and values corresponding to color codes.
cpr_signif_cols
cpr_signif_cols
An object of class character
of length 5.
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
mishler_endem_cols
,
mishler_signif_cols
cpr_signif_cols scales::show_col(cpr_signif_cols)
cpr_signif_cols scales::show_col(cpr_signif_cols)
Character vector with names corresponding to significance levels and values corresponding to color codes, with "not significant" colored grey.
cpr_signif_cols_2
cpr_signif_cols_2
An object of class character
of length 5.
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols
,
mishler_endem_cols
,
mishler_signif_cols
cpr_signif_cols_2 scales::show_col(cpr_signif_cols_2)
cpr_signif_cols_2 scales::show_col(cpr_signif_cols_2)
Character vector with names corresponding to endemism types and values corresponding to color codes. Original palette used by Mishler et al. (2014). May not be distinguishable to people with color vision deficiency (CVD).
mishler_endem_cols
mishler_endem_cols
An object of class character
of length 5.
Color scheme:
paleo: blue
neo: red
not significant: beige
mixed: light purple
super: dark purple
Mishler, B., Knerr, N., González-Orozco, C. et al. (2014) Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun, 5: 4473. doi:10.1038/ncomms5473
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_signif_cols
mishler_endem_cols scales::show_col(mishler_endem_cols)
mishler_endem_cols scales::show_col(mishler_endem_cols)
Character vector with names corresponding to endemism types and values corresponding to color codes. Original palette used by Mishler et al. (2014). May not be distinguishable to people with color vision deficiency (CVD).
mishler_signif_cols
mishler_signif_cols
An object of class character
of length 5.
Mishler, B., Knerr, N., González-Orozco, C. et al. (2014) Phylogenetic measures of biodiversity and neo- and paleo-endemism in Australian Acacia. Nat Commun, 5: 4473. doi:10.1038/ncomms5473
Other colors:
cpr_endem_cols_2
,
cpr_endem_cols_3
,
cpr_endem_cols_4
,
cpr_endem_cols
,
cpr_make_pal()
,
cpr_signif_cols_2
,
cpr_signif_cols
,
mishler_endem_cols
mishler_signif_cols scales::show_col(mishler_signif_cols)
mishler_signif_cols scales::show_col(mishler_signif_cols)
Fictional data for testing purposes from Phylocom (Webb et al. 2008)
phylocom
phylocom
A list with three elements:
Phylogeny with 32 tips
Community matrix with 6 sites (rows) and 25 species (columns).
Trait data; a data.frame with 32 species (rows) and 4 traits (columns)
Obtained via the picante
package (Kembel et al. 2010)
Webb, C.O., Ackerly, D.D., and Kembel, S.W. 2008. Phylocom: software for the analysis of phylogenetic community structure and trait evolution. Version 4.0.1. http://www.phylodiversity.net/phylocom/.
Kembel, et al. Picante: R tools for integrating phylogenies and ecology, Bioinformatics 26: 1463–1464 doi:10.1093/bioinformatics/btq166
# Example phylogeny phylocom$phy # Example community phylocom$comm
# Example phylogeny phylocom$phy # Example community phylocom$comm