Learn R Programming

GeometricMorphometricsMix

Miscellaneous geometric morphometric functions

This package provides a diverse set of functions for geometric morphometric analyses, including shape integration, disparity, association, and more. It is designed for researchers, students, and practitioners in geometric morphometrics.

Originally developed as a resource for students in the Geometric Morphometrics course (Physalia Courses), these functions have been complemented over the years with many new functions, and are now distributed as an R package for broader accessibility and ease of use.

Installation

From Github, using devtools

library(devtools)
install_github("fruciano/GeometricMorphometricsMix", build_vignettes=TRUE)

Citation

Currently, there is no formal publication describing the package (but this may be available in the future). Please, use citation() to identify the most appropriate current citation of GeometricMorphometricsMix. Importantly, each function provides reasonable comments and references to the methods, which can (and should) be used when using the functions in the package (in addition to the usual citation to the package itself).

Documentation and Help

Each function in the package is documented with usage examples and references.

Currently available functions

  • adjRand_test : Permutation test of the adjusted Rand index, which quantifies the agreement between two partitions (e.g., classification of specimens obtained using different methods)
  • BTailTest : Comparison of disparity between two groups
  • critical_angle : Critical angle for the test of difference between two vectors
  • disparity_resample : Obtain resampling estimates (bootstrap or rarefaction) of disparity statistics
  • disparity_test : Comparison of disparity between two groups
  • dist_mean_boot : Bootstrap estimates of the distance between group means
  • EscoufierRV : Computation of Escoufier RV, which quantifies levels of association between blocks of variables (Escoufier 1973 - Biometrics)
  • Kmultparallel : Parallelised computation of Adams' Kmult (useful for distributions of trees, see Fruciano et al. 2017 - Ecology and Evolution)
  • LM_relativepos_check : Check relative position of landmarks, comparing it to a reference specimen (useful to identify switched landmarks and similar in raw data)
  • parallel_analysis : Perform parallel analysis (useful to choose a number of principal components for dimensionality reduction)
  • pls : Perform partial least squares (PLS) analysis
  • pls_major_axis : For a partial least squares (PLS) analysis, compute the major axis of PLS scores, project data onto the axis and compute predicted shapes for the major axis scores thus obtained.
  • ProjectOrthogonal : Projects data to subspace orthogonal to a given vector (for use in allometric correction, see Burnaby 1966 - Biometrics; Rohlf & Bookstein 1987 - Systematic Zoology; for use in dealing with measurement error, see Valentin et al. 2008 - Journal of Fish Biology; Fruciano 2016 - Development Genes and Evolution)
  • rescale_by_landmark_distance : Convenience function to rescale configurations of landmarks based on a vector of inter-landmark distances
  • reversePCA : Simple function to obtain the original variables (e.g., shape) from PC scores (and mean)
  • rotate_landmarks: Apply a user-defined rotation of a landmark configuration about the origin
  • rarefied_convex_hull : Computation of rarefied estimates of n-dimensional convex hull volume (a measure of disparity/morphospace occupation) - deprecated
  • rarefied_disparity : Rarefied estimates of some measures of disparity/morphospace occupation - deprecated
  • repeated_measures_test : Test of difference between two repeated measures
  • RVrarefied : Computation of rarefied estimates of Escoufier RV (see Fruciano et al. 2013 - Plos One)
  • RVcomparison : Permutation test for the difference in Escoufier RV (see Fruciano et al. 2013 - Plos One)
  • scaled_variance_of_eigenvalues : Compute estimates of the scaled variance of eigenvalues (a commonly used measure of integration)
  • TestOfAngle : Test of angle between two vectors, optionally allowing "flipping" of one of the two

Function Groups by Analysis Type

Analysis TypeFunctionsDescription
Analysis of DisparityBTailTestTraditional comparison of disparity between two groups
disparity_resampleResampling estimates of disparity
disparity_testComparison of disparity between two groups
rarefied_convex_hullComputation of rarefied estimates of n-dimensional convex hull volume (measure of disparity/morphospace occupation) - deprecated
rarefied_disparityRarefied estimates of various measures of disparity/morphospace occupation - deprecated
Integration/Association/ModularityEscoufierRVComputation of Escoufier RV coefficient, quantifying association between blocks of variables
RVrarefiedComputation of rarefied estimates of Escoufier RV to account for sample size
RVcomparisonPermutation test for the difference in Escoufier RV between datasets
scaled_variance_of_eigenvaluesCompute estimates of the scaled variance of eigenvalues (measure of integration)
plsPerform partial least squares (PLS) analysis for covariation between blocks
pls_major_axisCompute major axis of PLS scores and predicted shapes along this axis
Vector/Angle Analysiscritical_angleCritical angle for the test of difference between two vectors
TestOfAngleTest of angle between two vectors, with optional "flipping" of one vector
Group Comparison and ClassificationadjRand_testPermutation test of the adjusted Rand index, quantifying agreement between two partitions
dist_mean_bootBootstrap estimates of the distance between group means
repeated_measures_testTest of difference between two repeated measures
Data Transformation and ManipulationProjectOrthogonalProjects data to subspace orthogonal to a given vector (for allometric correction)
rescale_by_landmark_distanceRescale configurations of landmarks based on inter-landmark distances
reversePCAObtain original variables from PC scores and mean
rotate_landmarksApply a user-defined rotation of a landmark configuration
Phylogenetic Comparative AnalysisKmultparallelParallelised computation of Adams' Kmult (for distributions of trees)
Quality Control and DiagnosticsLM_relativepos_checkCheck relative position of landmarks against a reference specimen
Dimensionality Reductionparallel_analysisPerform parallel analysis to determine number of principal components to retain

Badges

Copy Link

Version

Install

install.packages('GeometricMorphometricsMix')

Version

0.6.0.1

License

MIT + file LICENSE

Maintainer

Carmelo Fruciano

Last Published

January 27th, 2026

Functions in GeometricMorphometricsMix (0.6.0.1)

brown_trout

Brown trout landmark data
rotate_landmarks

User-defined rotation of a landmark configuration
print.EscoufierRVrarefy

Print method for EscoufierRVrarefy objects
print.disparity_resample

Print method for disparity_resample objects
summary.parallel_Kmult

Summary method for parallel_Kmult objects
reversePCA

'Reverse' PCA
rescale_by_landmark_distance

Rescale landmark data based on interlandmark distances
repeated_measures_test

Perform test on two repeated measures
print.parallel_Kmult

Print method for parallel_Kmult objects
scaled_variance_of_eigenvalues

Compute scaled variance of eigenvalues
pls

Partial least squares (PLS) analysis
pls_major_axis

Major axis predictions for partial least squares (PLS) analysis
BTailTest

BTailTest for difference in disparity/morphospace occupation
GeometricMorphometricsMix-defunct

Defunct functions in GeometricMorphometricsMix
adjRand_test

Test the significance of the adjusted Rand index
Kmultparallel

Parallel implementation of Adams' Kmult with additional support for multiple datasets and tree sets
RVrarefied

Rarefied version of Escoufier RV coefficient
LM_relativepos_check

Check the relative positions for a set of landmarks, compared to a reference specimen
TestOfAngle

Perform a test of the angle between two multivariate vectors
RVcomparison

Compare Escoufier RV coefficient between groups
EscoufierRV

Escoufier RV coefficient
ProjectOrthogonal

Project to subspace orthogonal to a vector
disparity_resample

Resampling-based estimates (bootstrap or rarefaction) of disparity / morphospace occupation
critical_angle

Compute the critical angle for the test of the angle between two multivariate vectors
disparity_test

Permutation test of difference in disparity/morphospace occupation
dist_mean_boot

Bootstrapped distance between two arrays
arching_vector

Body arching vector from brown trout study
plot.parallel_Kmult

Plot method for parallel_Kmult objects
plot.disparity_resample

Plot method for disparity_resample objects
parallel_analysis

Perform parallel analysis
plot.EscoufierRVrarefy

Plot method for EscoufierRVrarefy objects