[This article was first published on geomorph, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Geomorph users,

We have uploaded version 2.1.3 to CRAN. The windows and mac binaries have been compiled and the tarball is available.

NOTE: Version 2.1.3 has a small bug in readland.tps()that unfortunately slipped through the cracks. So you can also download the tarball of beta 2.1.4 here.

This version comes with some small changes, bug fixes and new features:

New functions
plotOutliers()for exploring GPA-aligned coordinate data for specimens that may have been mis-digitized (landmarks swapped or misplaced). The function uses Procrustes distance from the mean shape and plots the specimens ordered from greatest to least distance. In this way, the user can easily see which specimens fall far from the mean. Then, if any specimens fall very far from the mean, above the third quartile, then the function colours these in red. The function returns the address of each specimen in order as they fall from the mean, which can be used by plotRefToTarget() to visualise the possible problems. Example of how to use the function included in the help file.

define.links()is a new interactive function to make a matrix of landmark address pairs that together link landmarks (“wireframe” for morphologika users) for enhanced plotting of shapes. The returned links matrix can be used in plotRefToTarget() and PlotAllSpecimens(). For those who make their own shape change plots by hand, the links matrix can be used as follows (for 2D case):

for(i in 1:nrow(links)) {

lwd = 2) }

Where A is a matrix of shape coordinates (p x k) for a single specimen. For 3D data, use segments3d().
Thanks to Vera Weisbecker and her lab at U Queensland for asking for this function.

Enhanced 3D Digitizing Capabilities
The 3D digitizing functions buildtemplate(), digit.fixed(), digitsurface(), and editTemplate(), and the 3D helper function define.sliders.3d() have been greatly enhanced. Using a newish function from rgl package, these functions now allow digitizing (choosing a vertex to be used as the landmark) or selecting 3D points simply by right-clicking on the point. PHEW! Also, read.ply()has been updated and now includes calculating of vertex normals which greatly enhances the downstream digitizing from ply files, but reducing the likelihood that a point somewhere behind the mesh will be chosen instead.
Watch them on youTube: digit.fixed in action here; buildtemplate here; and digitsurface here.

Other updates
define.modules()now works for 2D and 3D specimen data, and there is no limit to how many modules you can have (however for biological hypotheses, we recommend that each module should have at least 5 landmarks).
Additional input options added to pairwiseD.test() and pairwise.slope.test()
Ability to accomodate singular phylogenetic covariance matrices in: physignal(), compare.evol.rates(), procD.pgls() and phylo.pls()
Users can now put a 2D matrix or the normal 3D array in plotAllometry().
readland.tps() now reads curves (CURVES=) from tps files and will convert them to landmarks (semilandmarks), or just ignore the coordinate data if required. Thank you to Brooke Long of South Dakota School of Mines and Technology for requesting this update.
Emma