procrustesFit: Generalized Procrustes Analysis

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/procrustesFit.R

Description

This function aligns a set of landmark configurations using Generalized Procrustes Analysis (GPA).

Usage

1
procrustesFit(dat, anchor.index, x, PrinAxes = FALSE, showplot = FALSE)

Arguments

dat

a list containing landmark coordinate data of anchor from the specimens of interest

anchor.index

a numeric constant for the anchor of interest; 1 for ventral right; 2 for ventral left; 3 for dorsal right; 4 for dorsal left

x

a list providing the indices of specimens with anti-clockwise and clockwise orientation of landmarks for the anchor with index anchor.index

PrinAxes

logical; controls the argument with the same name in gpagen

showplot

logical; if TRUE, a scatter plot of the GPA coordinates of all specimens of interest is returned

Details

This function is essentially a wrapper for the gpagen function in the geomorph package (version 3.0.0) to help convert raw landmark coordinates of monogenean anchors to GPA coordinates for downstream analysis.

Value

a list where the components are arrays of GPA coordinates for the specimens of interest

Author(s)

Tsung Fei Khang tfkhang@um.edu.my

References

Khang TF, Soo OYM, Tan WB, Lim LHS. (2016). Monogenean anchor morphometry: systematic value, phylogenetic signal, and evolution. PeerJ 4:e1668.

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

See Also

matrix2list, anglePolygon

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
library(geomorph)

data(ligophorus_tpsdata)

#A data processing step to parse out the orientation of landmarks
#from samples of L.parvicopulatrix

O <- matrix(0, length(ligophorus_tpsdata$parvicopulatrix), 4)
for(w in 1:length(ligophorus_tpsdata$parvicopulatrix)){
	result <- mapply(function(k)
	anglePolygon(matrix2list(ligophorus_tpsdata$parvicopulatrix[[w]][(11*(k-1)+1):(11*k),]),
	degree=TRUE), k=1:4)

	result_angle <- mapply(function(k) list(result[[2*k-1]]), k=1:4)
	result_orientation <- mapply(function(k) list(result[[2*k]]), k=1:4)
	names(result_angle) <- names(result_orientation) <- c("VR","VL","DR","DL")
	O[w,] <- unlist(result_orientation)
}

mdir <- apply(O, 2, function(k) which(k == "m") )
pdir <- apply(O, 2, function(k) which(k == "p") )

e <- 1 #Ventral right anchor
result <- procrustesFit(ligophorus_tpsdata$parvicopulatrix, e,
list(mdir[[e]], pdir[[e]]), PrinAxes=TRUE, showplot=TRUE)

#Standardize the x-coordinate of Landmark 7 by rotating the x-coordinate
#of its mean GPA xy-coordinate to x=0.
coordinates <- stdLM(result$coords, reflect=FALSE, swap=TRUE, sgn=c(1,-1))

plotLM(coordinates, "VR", pointscale=0.8,axispointscale=0.8,
meansize=1.2,polygon.outline=TRUE,c(-.6,.6),c(-.6,.6) )

monogeneaGM documentation built on May 29, 2017, 9:18 p.m.