| A toolbox providing methods for data-acquisition, visualisation and statistical methods related to Geometric Morphometrics and shape analysis | Morpho-package Morpho |
| align new data to an existing Procrustes registration | align2procSym |
| calculate angle between two vectors | angle.calc |
| Test whether the direction of two vectors is similar | angleTest |
| Replace ID-strings of data and associated files. | anonymize |
| apply affine transformation to data | applyTransform applyTransform.default applyTransform.matrix applyTransform.mesh3d |
| compute the area of an n-dimensional hypersphere | areaSphere |
| compute the area of an n-dimensional hypersphere cap | areaSpherePart |
| calculate Pseudo-inverse of a Matrix using RcppArmadillo | armaGinv |
| reverts list2array, converting an array to a list of matrices | array2list |
| calculate mean of an array | arrMean3 |
| Assess differences in amount and direction of asymmetric variation (only object symmetry) | asymPermute |
| calculates the barycenters for all faces of a triangular mesh | barycenter |
| concatenate multiple arrays/matrices | bindArr |
| Landmarks and a triangular mesh | boneData boneLM skull_0144_ch_fe.mesh |
| calculate common allometric component | CAC |
| extract information about fixed landmarks, curves and patches from and atlas generated by "landmark" | cExtract |
| Visually browse through a sample rendering its landmarks and corresponding surfaces. | checkLM |
| check for NA values in a matrix (of landmarks) | checkNA |
| classify specimen based on between-group PCA or CVA or typprobClass | classify classify.bgPCA classify.CVA classify.typprob |
| Project coordinates onto a target triangular surface mesh. | closemeshKD |
| predefined colors for bone and skin | bone1 bone2 bone3 colors skin1 skin2 skin3 skin4 |
| Compute area enclosed within an irregular polygon | computeArea |
| calculate an affine transformation matrix | computeTransform |
| calculates distances and PC-coordinates of covariance matrices | covDist covPCA |
| calculate the pooled within groups covariance matrix | covW |
| Create an atlas needed in placePatch | createAtlas |
| Create Matrices necessary for Thin-Plate Spline | CreateL |
| create a list with empty entries to be used as missingList in slider3d | createMissingList |
| calculate the orthogonal complement of a 3D-vector | crossProduct tangentPlane |
| calculate Centroid Size for a landmark configuration | cSize |
| cut a mesh by a hyperplane and remove parts above/below that plane | cutMeshPlane |
| separate a 3D-pointcloud by a hyperplane | cutSpace |
| Canonical Variate Analysis | CVA |
| creates 3D shapes from data to be saved as triangular meshes | data2platonic |
| visualise differences between two superimposed sets of 2D landmarks | deformGrid2d |
| visualise differences between two superimposed sets of 3D landmarks | deformGrid3d |
| make a curve equidistant (optionally up/downsampling) | equidistantCurve |
| calculate variance of a distribution stemming from prediction models | exVar exVar.lm exVar.mvr |
| fast kmeans clustering for 2D or 3D point clouds | fastKmeans |
| Import 3D surface mesh files | file2mesh obj2mesh ply2mesh |
| Graphical interface to find outliers and/or to switch mislabeld landmarks | find.outliers |
| estimate missing landmarks from their bilateral counterparts | fixLMmirror fixLMmirror.array fixLMmirror.matrix |
| estimate missing landmarks | fixLMtps |
| find indices of faces that contain specified vertices | getFaces |
| get number of meaningful Principal components | getMeaningfulPCs |
| Get viewpoints on a sphere around a 3D mesh | getOuterViewpoints |
| Obtain PC-scores for new landmark data | getPCscores |
| determine the minimum ratio for two subsequent eigenvalues to be considered different | getPCtol |
| Get the linear combinations associated with the common shape change in each latent dimension of a pls2B | getPLSCommonShape |
| compute changes associated with 2-Block PLS-scores | getPLSfromScores |
| compute 2-Block PLS scores for new data | getPLSscores |
| Get a point along a line with a given distance from the start of the line | getPointAlongOutline |
| try to identify bilateral landmarks and sort them by side | getSides |
| get 4x4 Transformation matrix | getTrafo4x4 getTrafo4x4.rotonto |
| compute a 4x4 Transformation matrix for rotation around an arbitrary axis | getTrafoRotaxis |
| find vertices visible from a given viewpoints | getVisibleVertices |
| Perform PCA based of the group means' covariance matrix | groupPCA |
| plot histogram for multiple groups. | histGroup |
| match two landmark configurations using iteratively closest point search | icpmat |
| Compute Pairwise Landmark Distances | ILDS |
| Compute R2 for Interlandmark Distances | ILDSR2 |
| Inscribe the maximum ellipse into any arbitrary 2D polygon | inscribeEllipse |
| Inscribe the maximum ellipse into any arbitrary 2D polygon including rotations | inscribeEllipseRot |
| invert faces' orientation of triangular mesh | invertFaces |
| Calculates the Riemannian distance between two superimposed landmark configs. | kendalldist |
| get intersection between a line and a plane | line2plane |
| plot lines between landmarks | lineplot |
| converts a list of matrices to an array | list2array |
| convert data from LPS to RAS space and back | LPS2RAS |
| find nearest neighbours for 2D and 3D point clouds | mcNNindex |
| merge multiple triangular meshes into a single one | mergeMeshes |
| convert a colored mesh to greyscale. | mesh2grey |
| export mesh objects to disk | mesh2obj mesh2ply |
| calculate the corners of a mesh's bouning box | meshcube |
| calculates and visualises distances between surface meshes or 3D coordinates and a surface mesh. | meshDist meshDist.matrix meshDist.mesh3d |
| get intersections between mesh and a plane | meshPlaneIntersect |
| calculate average edge length of a triangular mesh | meshres |
| mirror landmarks or triangular mesh in place | mirror mirror.matrix mirror.mesh3d |
| mirror points or mesh on an arbitrary plane | mirror2plane mirror2plane.matrix mirror2plane.mesh3d |
| extract data from array names | name2factor name2num |
| Estimate the shape by averaging the shape of the nearest neighbours. | NNshapeReg |
| landmarks and a triangular mesh representing a human nose | longnose.lm nose shortnose.lm shortnose.mesh |
| align two 3D-pointclouds/meshes by their principal axes | pcAlign pcAlign.matrix pcAlign.mesh3d |
| visualization of shape variation | pcaplot3d pcaplot3d.nosymproc pcaplot3d.symproc |
| correlation between a reduced space and the original space | PCdist |
| performs permutation testing for group differences. | permudist |
| perfom permutation testing on angles and distances between subgroups of two major groups. | permuvec |
| Project semi-landmarks from a predefined atlas onto all specimen in a sample | placePatch |
| Plot graphical report for ILDSR2 | plot.ILDSR2 |
| plot the result of slider3d | plot.slider3d |
| visualize an atlas defined by createAtlas | plotAtlas |
| plots the normals of a triangular surface mesh. | plotNormals |
| Two-Block partial least square regression. | pls2B |
| Get the shape changes from pls2B associated with each latent variable | plsCoVar |
| Compute the shape changes along the common axis of deformations | plsCoVarCommonShape |
| projects a 3D coordinate orthogonally onto a plane | points2plane |
| fast Principal Component Analysis (PCA) | prcompfast |
| Compute between-group-PC scores from new data | predict.bgPCA |
| Compute CV-scores from new data | predict.CVA |
| predict 2 Block-PLS from new data | predictPLSfromData |
| predict data from 2-Block PLS-scores | predictPLSfromScores |
| predict relative warps for data not included in the training data set | predictRelWarps |
| Predict shapes based on linear models calculated from PCscores | predictShape.lm |
| calculate weights inverse to the distances from the specified observation. | proc.weight |
| Procrustes ANOVA for structures with object symmetry | procAOVsym |
| Workhorse function for procSym, responsible for Procrustes registration | ProcGPA |
| Procrustes registration | procSym |
| Project points onto the closest point on a mesh | projRead |
| Align a landmark configuration to a mesh using ICP | pts2meshICP |
| Q-Q plot to assess normality of data | qqmat |
| converts a mesh containing quadrangular faces into one only consisting of triangles | quad2trimesh |
| Export data to MorphoJ and Morphologika | r2morphoj r2morphologika |
| projects the vertices of a mesh along its normals onto the surface of another one. | ray2mesh |
| batch import data from files | read.csv.folder |
| read fiducials from slicer4 | read.fcsv |
| read dta files | read.lmdta |
| Read saved pick-points from meshlab | read.mpp |
| reads pts files | read.pts |
| read Landmarks from Slicer in Json format | read.slicerjson |
| Import landmarks and outlines from TPS files | readallTPS |
| import landmark data from csv files | readLandmarks.csv |
| correlation between shape space and tangent space | regdist |
| calulate regression scores for linear model | RegScore |
| relax one specific landmark configuration against a reference | relaxLM relaxLM.matrix relaxLM.mesh3d |
| calculate relative Warp analysis | relWarps |
| plot or save the results of meshDist | export export.meshDist render render.matrixDist render.meshDist |
| Resample a curve equidistantly | resampleCurve |
| restore original data from PCA | restoreFromPCA |
| restore shapes from PC-Scores or similar projections | restoreShapes |
| symmetrize a bilateral landmark configuration | retroDeform3d |
| symmetrize a triangular mesh | retroDeformMesh |
| Rotate an object (matrix or mesh) around an arbitrary axis in 3D | rotaxis3d rotaxis3d.matrix rotaxis3d.mesh3d |
| calculate a rotation matrix around an arbitrary axis through the origin in 3D | rotaxisMat |
| rotate ,scale and translate a mesh based on landmark information. | rotmesh.onto |
| rotate matrix of landmarks | rotonmat |
| rotates, translates and scales one matrix onto an other using Procrustes fitting | rotonto rotreverse rotreverse.matrix rotreverse.mesh3d |
| scale a mesh of class "mesh3d" | scalemesh |
| slides Semilandmarks along curves 2D by minimising bending energy of a thin-plate spline deformation. | slider2d |
| slides Semilandmarks along curves and surfaces in 3D by minimising bending energy of a thin-plate spline deformation. | slider3d |
| returns the solution space (basis and translation vector) for an equation system | solutionSpace |
| sort curvepoints by using the subsequent neighbours | sortCurve |
| create a perfectly symmetric version of landmarks | symmetrize |
| thin plate spline mapping (2D and 3D) for coordinates and triangular meshes | tps2d tps3d |
| calculate typicality probabilities | typprob typprobClass |
| some little helpers for vertex operations on triangular meshes | rmUnrefVertex rmVertex unrefVertex vert2points |
| update a vector of indices after removal of some referenced items | updateIndices |
| Compute face or vertex normals of a triangular mesh | facenormals updateNormals |
| convert an 3D array into a matrix and back | vecx |
| remove all parts of a triangular mesh, not visible from a set of viewpoints | virtualMeshScan |
| Plot the ILDS with the relevant ILDS ighlighted | visualise visualise.ILDSR2 visualize visualize.ILDSR2 |
| Creates a sequence of images showing predefined steps of warping two meshes or landmark configurations (2D and 3D) into each other | warpmovie2d warpmovie3d warpmovie3d.matrix warpmovie3d.mesh3d |
| write fiducials in slicer4 format | write.fcsv |
| exports a matrix containing landmarks into .pts format | write.pts |
| Export landmarks (or any 3D coordinates) to the new slicer json format | write.slicerjson |