Below are links to software packages that I (with co-authors) have developed. For each, there is a link to the software, as well as the original publication in which the method was described or used. These programs are freely distributed as a service to the scientific community.

**Users of these programs are requested to cite the corresponding papers where the methods were first described**.

Disclaimer: All of the routines have been tested, but it cannot be guaranteed that they are free of bugs. If errors are identified, please contact DCA to report them.

## Maintained Packages

**1. geomorph: An R package for statistical shape analysis. **This package (written in R) is designed for the collection and analysis of 2D and 3D landmark-based geometric morphometric shape data for 2D and 3D. NOTE: many of the functions described below are incorportated in geomorph (see help files).

The package may be obtained from the CRAN package repository.

**Please cite:**

Adams, D.C., M.L. Collyer, A. Kaliontzopoulou, and E.Baken. 2021. Geometric Morphometric Analyses of 2D/3D Landmark Data. vsn. 4.0.0. https://cran.r-project.org/web/packages/geomorph/index.html

Adams, D.C., and E. Otarola-Castillo. 2013. geomorph: an R package for the collection and analysis of geometric morphometric shape data. Methods in Ecology and Evolution. 4:393-399.

**2. RRPP: An R package for fitting linear models to high-dimensional data using residual randomization. **This package (written in R) is designed for the analysis of linear models using residual randomization. Both ordinary least squares (OLS) and generalized least squares (GLS) models may be examined. Post-hoc tests and graphical visualizaitons are also available.

The package may be obtained from the CRAN package repository.

**Please cite:**

Collyer, M.L, and D.C. Adams. 2018. RRPP: An R package for fitting linear models to high-dimensional data using residual randomization. Methods in Ecology and Evolution. 9:1772-1779.

## Contributed Functions

**19. Comparing integration across datasets with an effect size (Z-score). **This function (written in R) compares the degree of overall integration across datasets using a Z-score derived from the relative eigenvalue index.**Please cite:**

Conaway, M.A., and D.C. Adams. 2022. An effect size for comparing the strength of morphological integration across studies. Evolution. 76: 2244–2259.

**Computer Code: Found in geomorph**

**18. Phylogenetically aligned component analysis (PACA). **This function (written in R) aligns multivariate data to directions of maximal phylogenetic signal. **Please cite:**

Collyer, M.L., and D.C. Adams. 2021. Phylogenetically aligned component analysis. Methods in Ecology and Evolution. 12:359-3727.

**Computer Code: Found in geomorph**

**17. Comparing modularity across datasets with the Z-score coefficient. **This function (written in R) compares the degree of modularity in morphometric datasets using Z-scores derived from CR analyses. **Please cite:**

D.C. Adams, and M.L. Collyer. 2019. Comparing the strength of modular signal, and evaluating alternative modular hypotheses, using covariance ratio effect sizes with morphometric data. Evolution. 73:2352-2367.

**Computer Code: Found in geomorph**

**16. A refined residual randomization procedure for PGLS. **This function (written in R) facilitates the evaluation of anova and regression models in a phylogenetic context, utilizing residual randomization. As with OLS models, the approach is preferable to methods that permute the original trait values. **Please cite:**

D.C. Adams and M.L. Collyer. 2018. Phylogenetic ANOVA: Group-clade aggregation, biological challenges, and a refined permutation procedure. Evolution. 72: 1204-1215.

**Computer Code: Found in geomorph and RRPP**

**15. Evaluating coevolution across two phylogenies using phylogenetic transformation. **This function (written in R) evaluates covariation between traits in a phylogenetic context when the traits each come from a different phylogeny; e.g., as when found in plant-host or other such interactions. **Please cite:**

Adams, D.C. , and J.D. Nason. 2018. A phylogenetic comparative method for evaluating trait coevolution across two phylogenies for sets of interacting species. Evolution. 72:234-243.

**Computer Code: Found on DRYAD**

**14. Comparing integration across datasets with the Z-score coefficient. **This function (written in R) compares the degree of integration in morphometric datasets using Z-scores derived from partial least squares analyses. **Please cite:**

D.C. Adams and M.L. Collyer. 2016. On the comparison of the strength of morphological integration across morphometric datasets. Evolution. 70:2623-2631.

**Computer Code: Found in geomorph**

**13. Evaluating modularity with the CR coefficient. **This function (written in R) quantifies and degree of modularity in morphometric data, and evaluates this using permutation procedures. **Please cite:**

D.C. Adams. 2016. Evaluating modularity in morphometric data: Challenges with the RV coefficient and a new test measure. Methods in Ecology and Evolution. 7:565-572.

**Computer Code: Found in geomorph**

**12. Comparing evolutionary rates for multiple high-dimensional traits . **This function (written in R) quantifies and compare evolutionary rates on a phylogeny for high-dimensional phenotypic traits like shape.**Please cite:**

Denton, J.S.S., and D.C. Adams. 2015. A new phylogenetic test for comparing multiple high-dimensional evolutionary rates suggests interplay of evolutionary rates and modularity in lanternfishes (Myctophiformes; Myctophidae). Evolution. 69:2425-2440

**Computer Code: Found in geomorph**

**11. Multivariate PGLS. **This function (written in R) assesses ANOVA and regression models in a phylogenetic context (PGLS) under Brownian motion for high-dimensional multivariate data. **Please cite:**

Adams, D.C. 2014. A method for assessing phylogenetic least squares models for shape and other high-dimensional multivariate data. Evolution. 68:2675-2688.

**Computer Code: Found in geomorph**

**10. Estimating phylogenetic signal in multivariate data. **This function (written in R) quantifies phylogenetic signal using a multivariate generalization of the Kappa statistic (Kmult). **Please cite:**

Adams, D.C. 2014. A generalized K statistic for estimating phylogenetic signal from shape and other high-dimensional multivariate data (pdf). *Systematic Biology*. 63:685-697.

**Computer Code: Found in geomorph**

**9. Evaluating morphological integration in a phylogenetic context. **This function (written in R) quantifies the degree of morphological integration between two blocks of variables while taking the phylogenetic relationships among taxa into account. **Please cite:**

Adams, D.C. and R. Felice. 2014. Assessing phylogenetic morphological integration and trait covariation in morphometric data using evolutionary covariance matrices (pdf). PLoS ONE. 9(4):e94335.

**Computer Code: Found in geomorph**

**8. Comparing evolutionary rates for high-dimensional traits . **This function (written in R) quantifies and compare evolutionary rates on a phylogeny for high-dimensional phenotypic traits like shape. **Please cite:**

Adams, D.C. 2014. Quantifying and comparing phylogenetic evolutionary rates for shape and other high-dimensional phenotypic data (pdf). *Systematic Biology*. 63:166-177.

**Computer Code: Found in geomorph**

**7. Comparing evolutionary rates among traits using likelihood. **This function (written in R) uses likelihood to compare evolutinary rates among two or more traits on a phylogeny. **Please cite:**

Adams, D.C. 2013. Comparing evolutionary rates for different phenotypic traits on a phylogeny using likelihood. *Systematic Biology*. 62:181-192.

**6. Analysis of multivariate phenotypic trajectories. **This function (written in R) quantifies attributes of multivariate phenotypic trajectories (their size, shape, and orientation), and statistically compares them via residual randomization. **Please cite: **

Adams, D.C., and M.L. Collyer. 2009. A general framework for the analysis of phenotypic trajectories in evolutionary studies. *Evolution*. 63:1143-1154.

**Computer Code: Found in geomorph**

**5. Phylogenetic meta-analysis. **This function (written in R) performs a meta-analysis that accounts for phylogenetic non-independence. The approach is appropriate for a fixed-effects meta-analysis, following a Brownian Motion (BM) model of evolution. **Please cite: **

Adams, D.C. 2008. Phylogenetic meta-analysis. *Evolution*. 62:567-572.

**4.** **Analysis of multivariate phenotypic change vectors. **This function (written in R), quantifies the size and orientation of multivarite phenotypic trajectories, and statistically compares them via residual randomization. **Please cite: **

Collyer, M. L., and D. C. Adams. 2007. Analysis of two-state multivariate phenotypic change in ecological studies. *Ecology*. 88:683-692. [PDF]

**Computer Code: Found in geomorph**

**3. Software for meta-analysis. **This software (distributed by Sinauer Associates) performs fixed effects and random effects meta-analysis for single group, categorical, and continuous meta-analytic models. **Please cite: **

Rosenberg, M. S., D. C. Adams, and J. Gurevitch. 2000. *MetaWin: Statistical software for meta-analysis*. Version 2.0. Sinauer Associates, Sunderland, Massachusetts. 128 pp.

**2.** **Adjustment of landmark data from articulated structures.** This software reads a matrix of 2D landmark coordinates, and adjusts the landmarks on one subset of a structure relative to those on another, so that the angle between them is mathematically invariant among specimens (e.g,. standardarizes the position of landmarks on the jaw relative to the skull). **Please cite: **

Adams, D. C. 1999. Methods for shape analysis of landmark data from articulated structures (pdf). *Evolutionary Ecology Research*. 1:959-970.

**Computer Code: Found in geomorph**

**1. Randomization test of behavioral data. **This function (written in R) performs an analysis of differences in a response variable among groups, and assesses significance using a randomization test. The approach, while general, was described for behavioral data, which are decidedly non-normally distributed. **Please cite: **

Adams, D. C., and C. D. Anthony. 1996. Using randomization techniques to analyse behavioural data. *Animal Behaviour*. 51:733-738.