geomorph:::plsgm.prcomp to include PaCA.plot.gm.prcomp.plotspec.lizards.mshape now has options (na.action argument) for missing values.readland.fcsv for importing landmark data from SlicerMorph .fcsv files.combine.subsets updated to include weighting options for relative centroid size.compare.evol.rates and compare.multi.evol.ratesbilat.symmetryplotGMPhyloMorphospace and plotTangentSpace now deprecatedbilat.symmetry (use DA.component and FA.component)readmulti.tpscompare.evol.rates, compare.multi.evol.rates,integration.test, modularity.test, phylo.integration, phylo.modularity, physignal, two.b.plscompare.CRreadmulti.tpsmshape inability to distinguish between one p x k specimen and a n x pk matrix.procD.allometry, advanced.procD.lm and nested.update through procD.lm and other RRPP tools; the second provides a comprehensive list of main geomorph functions and their use; and the third is a step-by-step demonstration of 3D digitizing proceduresreadland.tps now includes an argument (negNA = FALSE) to define whether negative landmark coordinates should be transformed to NAs (by setting the argument to TRUE)combine.subsets for gpagen objectsprocD.lm to work better with missing data framesbilat.symmetryprocD.lm outputreadland.shapescompar.evol.rates to utilize all simulated datasetsfixed.angleGMfromShapes1RRPPplotAllometry, gm.prcomp, picknplot.shape, shape.hullsadvanced.procD.lm, nested.update, procD.allometry (features of these functions now found using procD.lm)geiger and Matrixcompare.evol.rates for permutationsfixed.angle to allow centroids from multiple points to be used as angle points.coords.subset to avoid issue with arrayspecs and naming subsetted data.gpagengpagen outputtrajectory.analysis to RRPP package and updated its argumentsmorphol.disparitycompare.evol.ratesphylo.modularity call when groups > 2combine.subsetstrajectory.analysis to properly center mean values for PC plotting (now in RRPP)gpagen, to avoid errorsreadland.tpsprocD.allometryadvanced.procD.lm now performed using RRPP packagebilat.symmetry so output shapes retain order in ‘ind’ factorreadland.tps to identify missing data only when all lm coordinate are <0 and interactively prompt the user to confirm if they are to be treated as NAsplotOutliers now allows to plot outlier configurations in order to compare their shape with the consensusplot.mshape function added to plot the consensus configuration with numbers and linksgm.prcomp implements raw and weighted PCA and allows S3 generic plotting of its outputreadland.shapes allows reading a shapes file produced by StereoMorph, including landmark data and (potentially multiple) curves, and sampling semilandmarks from these curves.picknplot.shape allows interactively picking points in geomorph scatterplots to visualize shape variation across morphospace.readland.tps to identify missing data only when all lm dimensions are <0 and interactively prompt the user to confirm if they are to be treated as NAs.bilat.symmetry and geomorphShapes option to allow more flexible gpagen options withinprocD.pgls to use residuals from GLS model for permutationsadvanced.procD.lmplot.procD.allometry to allow direct control of all plotting arguments by the userplotRefToTarget and tps to use plot.xy instead of plot, and thus avoid conflicts with plot.mshapereadland.tps, to identify negative values and recode them as NAsphylo.modularitycompare.evol.rates permutation method for univariate traitestimate.missing regression approachphylo.integration where Y-dataset contained a single variableintegration.test when 3+ partitions with non-contiguous variablesprocD.lm for single factor OLS models.procD.fitprocD.allometryprocD.allometryreadland.nts when file contained a single specimen’s datamorphol.disparity when phylogeny utilizedreadland.tps to be general to whitespace delimitationinterlmkdist to calculate linear distances between landmarks (interlandmark distances)advanced.procD.lmprocD.lm, procD.pgls)procD.lm and procD.pgls, with limited outputcompare.evol.ratesplotTangentSpace to pass arguments to prcomp. Also, adjusted default tolerance to remove redundant PC dimensions.arrayspecsarrayspecs and two.d.arrayprocD.lmplotGMPhyloMorphoSpace to center data by phylogenetic meanread.morphologika now supports lists of file names to return a single data objectreadland.nts and readmulti.nts to avoid ambiguity and resolve misinformation in previous versionsreadland.nts to accept specimen labels with spaces in nameprocD.fitadvanced.procD.lmplotAllSpecimens if no colour specifiedintegration.test and phylo.integrationcompare.pls, coords.subset, shape.predictordroplevels.geomorph.data.frame added to support codeprocD.lm and its allies to choose the computationally fastest algorithms based on design matrix complexity and data dimensionalityprocD.fit to remove unused levels from factorsgeomorph.data.frame to drop unused factor levelsmshape to be used on lists, arrays, or matricessingle.factor function to properly maintain factor levels when combining factorsphylo.integrationplot.procD.allometry and plot.plswriteland.tpstwo.b.plsprocD.allometryplot.procD.allometry (method=“PredLine”)plotTangentSpace when groups are specifiedplotTangentSpace; function now returns PC scores automatically when assigned to objectplotTangentSpace to return min and max shapes for all PC axes in $pc.shapesbilat.symmetry shape componentsplot.procD.allometrydigit.curves where open outline would be treated as closed if starting point was the end pointreadland.tps for some tps filesphytoolsprocD.pglsread.morphologikaplotTangentSpace, plot.bilat.symmetry, plot.procD.allometry, plot.plsplot.procD.allometry to designate plotting colorsplotOutliersadvanced.procD.lmphylo.modularityprocD.Allometryphylo.integration (via plot.pls)plot.pls, regarding best fit line and matrix reduction.gpagen source files: indexing errors, arbitrary PC rotations for surface points, maximum iteration disparity.digitize2D scaling issue when different scales used in each imagephylo.integration error when 3+ partitions examinedmodularity.test for CI intervals into matrix inputphylo.integration so that prob(A,B|phy)~prob(B,A|phy)plotAllSpecimens where links were not being plottedmodularity.test, integration.test, phylo.modularity, phylo.integration, procD.allometry, nested.update, geomorph.data.framenested.update of procD.lm objectscompare.modular.partitions, morphol.integr, phylo.pls, and plotAllometrygpagenphysignal. Only Kmult useddigitize2dplotAllSpecimensmorphol.disparity$Prob.Disp displaying NAsgpagencompare.multi.evol.rates for comparing rates of evolution among traitsplotGMPhyloMorphoSpace now plots 3D phylomorphospaces and chronophylomorphospacesbilat.symmetry, compare.modular.partitions, globalIntegration, morphol.integr, and phylo.plsgpagen (added additional checks on alignment)advanced.ProcD.lm: for single-factor analyses and matrix/variable inputreadland.nts flexibility with specimen labels; now supports spaces in labelsread.ply to allow reading meshes with many propertiesphysignal and compare.evol.rates: univariate data accepted as named vectordefine.links: read and append links to existing links matrixwarpRefMesh where normals were incorrectly assigned to new mesh3d objectreadland.tps which read in a file containing a single specimen returned a 2D matrix rather than 3D array; this fixes the issue with digitize2d not working for a single filemorphol.integr where warpgrids = F did not work for 3D datasetsglobalIntegration for use with 3D dataplotRefToTarget method = “TPS” where the wrong options from gridPars were being passedcompare.evol.rates generalized to use a single evolutionary rate matrixpairwiseD.test and pairwise.slope.test now defunctdefine.sliders.2d and define.sliders.3d now defunctread.morphologika can read files with missing dataphysignal and compare.evol.ratesdigit.curvesbuild.template and digitsurfacegridPar is a new function to customize plots of plotRefToTargetdigit.curves is a new function to calculate equidistant semilandmarks along 2D and 3D curvesdefine.sliders is new interactive function for defining sliding semilandmarks for 2D and 3D curves, plus an automatic mode when given a sequence of semilandmarks along a curvepairwiseD.test and pairwise.slope.test deprecateddefine.sliders.2d and define.sliders.3d deprecated (replaced by define.sliders)plotAllometry where verbose=T did not returnwarpRefMesh generalized - now takes a mesh3d object (i.e. made from read.ply) rather than calling read.ply directlyread.morphologika now reads [groups] option and adds these data to the $labels matrixplotOutliers now has option groups to plot outliers by levels(groups) using group meansmorphol.disparity help file updated to correctly indicate that group shape residuals, rather than shape values, themselves, are randomized in the permutation proceduregpagenreadland.tpstrajectory.analysisgpagen that flipped principal axesread.morphologika with reading [wireframe] in some morphologika filesplotOutliers function to identify potential outliersdefine.links function for enhanced plotting of shapespairwiseD.test and pairwise.slope.testphysignal, compare.evol.rates, procD.pgls and phylo.plsbuild.template, define.modules, define.sliders.3d, digit.fixed, digitsurface, and editTemplate )plotAllometry input can be 2D matrix or 3D arrayread.ply reads normals for enhanced downstream digitizing from ply filesreadland.tps reads curves from tps files and convert them to landmarks (semilandmarks)plotTangentSpace has enhanced plotting flexibility with labels and colorsbilat.symmetryphylo.plsadvanced.procD.lm for statistically comparing two or explanatory modelsplotRefToTargetwarpRefOutlineprocD.pglsprocD.lm, procD.pgls pairwiseD.test and pairwise.slope.testarrayspecsphylo.plsplotAllometryprocD.lm when verbose=TRUEgpagengpagen with option to disablefastAnc (phytools)procD.lm, pairwise.D.test and pairwise.slope.testreadland.tpsplotTangentSpaceplotAllometryprocD.pgls added to assess high-dimensional ANOVA and regression models in a phylogenetic contextpairwise.slope.test added to compare slopes of regression linesprocD.lm and pairwise.d.testdigitize2d. Function now reads multiple images and outputs TPS file, can be used with missing data, and digitizing session can be restarted where previous session stoppedtwo.b.pls, morphol.integr, and phylo.plsbilat.symmetryplotAllometry and plotTangentSpaceplotGMPhyloMorphoSpacedigitize2dgpagenphylo.pls for assessing the multivariate association between two blocks of variables in a phylogenetic contexttwo.b.pls for assessing the multivariate association between two blocks of variablesmorphol.disparity to compare Procrustes variance disparity among groupsProcD.lmplotRefToTarget, plotTangentSpace, plotAllometry, and bilat.symmetrywarpRefMesh to create a mesh3d surface that represents the mean shape, findMeanSpec to assist in choosing a template ply file for use with warpRefMesh that identifies specimen closest to the mean shape, and defline.modules to interactively assign landmarks to modular partitions [currently 2D only]compare.evol.rates, phylo.pls, morphol.integr, two.b.pls, physignal, and plotGMPhyloMorphoSpacecompare.evol.rates and physignalbilat.symmetry, phylo.pls, two.b.pls, morphol.integr, plotAllometry, plotTangentSpace, physignalcompare.evol.ratesmorphol.integrarrayspecs has been removedplotAllometry (method = “CAC”)plotAllometry outputbuild.Template, digit.fixed, digitsurface, and plotSpecread.vrml now defunctarrayspecs, readland.tps, readland.nts, readmulti.nts, two.d.array, plotTangentSpace, trajectory.analysis, bilat.symmetry, gpagenbilat.symmetrydigitize2D and updated flexibility of the functionreadmulti.ntsdefine.sliders.3d to allow sliders to be in any orderpPsup (original code from J. Claude) to not include size re-scaling by beta (underlying function used in trajectory.analysis only)compare.evol.ratescompare.evol.rates for comparing multivariate evolutionary rates on phylogeniesdefine.sliders.2d and define.sliders.3d replace curves2d and digit.curvesplotTangentSpace and PlotAllometrymorphol.integrcurves2d and digit.curves deprecatedplotAllometryread.plydigitsurface, buildtemplate, plotspec, digitfixed, and digitcurves now support ply file inputplotRefToTartgetread.vrml code for additional file formatspairwiseD.test function addedbilat.symmetry output includes symmetric and asymmetric shape componentsmorphol.integr to be compatible with new CRAN guidelinesbilat.symmetry to be compatible with new CRAN guidelinesphysignalPlotGMPhyloMorphoSpacereadland.tps to allow for non-numeric ID and reading a single specimen per filecurves2Ddigitize2Dread.morphologikafixed.angleplotTangentSpacephysignal and PlotGMPhyloMorphoSpacephysignal on getAncStates from geiger, which is no longer supportedplotGMPhyloMorphoSpace on getAncStates from geiger, which is no longer supportedbilat.symmetry function addedwriteland.tps function addedfixed.angle function addedcompare.modular.partitions generalized to allow 2 or more partitionsmorphol.integr generalized to allow 2 or more partitionstrajectory.analysis re-written to accept formulas, allowing greater flexibility for motion analysismorphol.integrphysignalplotAllometryplotTangentSpaceplotTangentSpaceplotTangentSpaceread.morphologika accepts greater variety of input file formatsbuildtemplate positional error in plot between template and scan corrected
digit.curves error with passing objects to internal function corrected
gpgen occasional reflection issue corrected
Added a NEWS.md file to track changes to the package.