Morphometrics using R
Switch branches/tags
Nothing to show
Latest commit c191f9f Sep 28, 2017 @vbonhomme vbonhomme comments
Failed to load latest commit information.
.Rproj.user/F66B4F73 added subset.Out Mar 31, 2014
R now returns p-values Sep 28, 2017
data +nsfishes Sep 28, 2017
inst comments + news Sep 28, 2017
man now returns p-values Sep 28, 2017
tests tests bind_db Sep 28, 2017
tmp following goodpractices::gp() Sep 12, 2017
vignettes url changed Sep 28, 2017
.Rbuildignore dev comf Dec 5, 2016
.Rprofile version 1.0.0 Mar 18, 2016
.gitignore vignette is back Dec 6, 2016
.travis.yml email notifications May 21, 2016
DESCRIPTION version upgrade Sep 28, 2017
Momocs.Rproj part of #13 and #106 Nov 27, 2015
Momocs_arch.jpg version 1.0.0 Mar 18, 2016
NAMESPACE following goodpractices::gp() Sep 12, 2017 typo Jul 7, 2017 comments Sep 28, 2017
update.R version update Mar 8, 2016


Travis-CI Build Status CRAN_Status_Badge Coverage Status CRAN downloads last month CRAN downloads grand total

  • is a complete toolkit for morphometrics, from data extraction to multivariate analyses.
  • includes most common 2D morphometrics approaches : outlines, open outlines, configurations of landmarks, traditional morphometrics, and facilities for data preparation, manipulation and visualization with a consistent grammar throughout.
  • allows reproducible, pipeable, complex morphometric analyses and paves the way for a pure open-source workflow in R, and other morphometrics approaches should be easy to plug in, or develop from, on top of this canvas.
  • hinges on the core functions developed in the must-have book Morphometrics with R by Julien Claude (2008).

Use it

From CRAN: install.packages("Momocs")

But I recommend using the last version:

if (!requireNamespace("devtools")) install.packages("devtools")

You can cite it with: citation("Momocs")


Matrices of xy-coordinates

  • ~100 generic tools like centering, scaling, rotating, calculating area, perimeter, etc. Full list with apropos("coo_")
  • generic plotters: coo_plot and g (work in progress)

Data acquisition + Babel

  • Outline extraction from black mask/silhouettes .jpgs
  • Landmark definition on outlines (def_ldk or via StereoMorph)
  • Open curves digitization with bezier curves (via StereoMorph)
  • Import/Export from/to .nts, .tps, PAST, .txt, etc.

Outline analysis

  • Elliptical Fourier analysis (efourier)
  • Radii variation (rfourier)
  • Radii variation - curvilinear abscissa (sfourier)
  • Tangent Angle Fourier analysis (tfourier)


  • Natural (raw) polynomials (npoly)
  • Orthogonal (Legendre) polynomials (opoly)
  • Discrete Cosinus Transform (dfourier)
  • bezier core functions

Configuration of landmarks

  • Full Generalized Procrustes Adjustment (fgProcrustes)
  • Sliding semi-landmarks (fgsProcrustes)

Traditional morphometrics and global shape descriptors

  • Facilities for multivariate analysis (see flowers)
  • A long list of shape scalars (eg. coo_eccentricity, coo_rectilinearity, etc.)

Data handling

  • Easy data manipulation with filter, select, slice, mutate and other verbs ala dplyr
  • New verbs useful for morphometrics such as combine and chop, to handle several 2D views
  • Permutation methods to resample data (perm, breed)

Multivariate analysis

  • Mean shape (groupwise) calculations (mshapes)
  • Principal component analysis (PCA)
  • Multivariate analysis of variance (MANOVA + pairwise testing MANOVA_PW)
  • Linear discriminant analysis and screening (LDA)
  • Hierarchical clustering (CLUST)
  • K-means (KMEANS)

Graphical methods

  • Family pictures and quick inspection of whole datasets (stack and panel)
  • Some ggplot2 plots, when useful (and convet Momocs' objects into data.frames it withas_df`)
  • Morphological spaces for PCA
  • Thin plate splines and variation around deformation grids


  • Datasets for all types of data (apodemus, bot, chaff, charring, flower, hearts, molars, mosquito, mouse, oak, olea, shapes, trilo, wings)
  • Shiny demonstrators/helpers. See Momecs
  • Online documentation