Package: Morpho 2.12

Morpho: Calculations and Visualisations Related to Geometric Morphometrics

A toolset for Geometric Morphometrics and mesh processing. This includes (among other stuff) mesh deformations based on reference points, permutation tests, detection of outliers, processing of sliding semi-landmarks and semi-automated surface landmark placement.

Authors:Stefan Schlager [aut, cre, cph], Gregory Jefferis [ctb], Dryden Ian [cph]

Morpho_2.12.tar.gz
Morpho_2.12.zip(r-4.5)Morpho_2.12.zip(r-4.4)Morpho_2.12.zip(r-4.3)
Morpho_2.12.tgz(r-4.4-x86_64)Morpho_2.12.tgz(r-4.4-arm64)Morpho_2.12.tgz(r-4.3-x86_64)Morpho_2.12.tgz(r-4.3-arm64)
Morpho_2.12.tar.gz(r-4.5-noble)Morpho_2.12.tar.gz(r-4.4-noble)
Morpho_2.12.tgz(r-4.4-emscripten)Morpho_2.12.tgz(r-4.3-emscripten)
Morpho.pdf |Morpho.html
Morpho/json (API)
NEWS

# Install 'Morpho' in R:
install.packages('Morpho', repos = c('https://zarquon42b.r-universe.dev', 'https://cloud.r-project.org'))

Peer review:

Bug tracker:https://github.com/zarquon42b/morpho/issues

Uses libs:
  • openblas– Optimized BLAS
  • c++– GNU Standard C++ Library v3
  • openmp– GCC OpenMP (GOMP) support library
Datasets:

On CRAN:

10.05 score 51 stars 13 packages 188 scripts 1.5k downloads 118 mentions 174 exports 42 dependencies

Last updated 30 days agofrom:ec50a70a9c. Checks:OK: 9. Indexed: yes.

TargetResultDate
Doc / VignettesOKNov 22 2024
R-4.5-win-x86_64OKNov 22 2024
R-4.5-linux-x86_64OKNov 22 2024
R-4.4-win-x86_64OKNov 22 2024
R-4.4-mac-x86_64OKNov 22 2024
R-4.4-mac-aarch64OKNov 22 2024
R-4.3-win-x86_64OKNov 22 2024
R-4.3-mac-x86_64OKNov 22 2024
R-4.3-mac-aarch64OKNov 22 2024

Exports:adnormalsalign2procSymangle.calcangleTestanonymizeapplyTransformareaSphereareaSpherePartarmaGinvarray2listarrMean3asymPermutebarycenterbindArrbone1bone2bone3CACcExtractcheckLMcheckNAclassifyclosemeshKDcomputeAreacomputeTransformconv2backfcovDistcovPCAcovWcreateAtlasCreateLcreateMissingListcrosspcrossProductcSizecutMeshPlanecutSpaceCVAdata2platonicdeform.griddeformGrid2ddeformGrid3dequidistantCurveexportexVarfacenormalsfastKmeansfile2meshfind.outliersfixLMmirrorfixLMtpsgetFacesgetMeaningfulPCsgetOuterViewpointsgetPCscoresgetPCtolgetPLSCommonShapegetPLSfromScoresgetPLSscoresgetPointAlongOutlinegetSidesgetTrafo4x4getTrafoRotaxisgetVisibleVerticesgroupPCAhistGroupicpmatinscribeEllipseinscribeEllipseRotinvertFaceskendalldistline2planelineplotlist2arrayLPS2RASmcNNindexmergeMeshesmesh2greymesh2objmesh2plymeshcubemeshDistmeshPlaneIntersectmeshresmirrormirror2planename2factorname2numNNshapeRegobj2meshpcAlignpcaplot3dPCdistpermudistpermuvecplacePatchplotAtlasplotNormalspls2BplsCoVarplsCoVarCommonShapeply2meshpoints2planeprcompfastpredictPLSfromDatapredictPLSfromScorespredictRelWarpspredictShape.lmproc.weightprocAOVsymProcGPAprocSymprojReadqqmatquad2trimeshr2morphojr2morphologikaray2meshread.csv.folderread.fcsvread.lmdtaread.mppread.ptsread.slicerjsonreadallTPSreadLandmarks.csvregdistregdist.rawRegScorerelaxLMrelWarpsrenderresampleCurverestoreFromPCArestoreShapesretroDeform3dretroDeformMeshrmUnrefVertexrmVertexrotaxis3drotaxisMatrotmesh.ontorotonmatrotontorotreversescalemeshshowPCskin1skin2skin3skin4slider2dslider3dsolutionSpacesortCurvesymmetrizetangentPlanetanplantps2dtps3dtypprobtypprobClassunrefVertexupdateIndicesupdateNormalsvecxvert2pointsvirtualMeshScanwarp.meshwarpmovie2dwarpmovie3dwrite.fcsvwrite.ptswrite.slicerjson

Dependencies:base64encbezierbslibcachemclicodetoolscolorRampsdigestdoParallelevaluatefastmapfontawesomeforeachfsgluehighrhtmltoolshtmlwidgetsiteratorsjquerylibjsonliteknitrlatticelifecyclemagrittrMASSMatrixmemoisemimeR6rappdirsRcppRcppArmadilloRcppEigenrglrlangrmarkdownRvcgsasstinytexxfunyaml

Readme and manuals

Help Manual

Help pageTopics
A toolbox providing methods for data-acquisition, visualisation and statistical methods related to Geometric Morphometrics and shape analysisMorpho-package Morpho
align new data to an existing Procrustes registrationalign2procSym
calculate angle between two vectorsangle.calc
Test whether the direction of two vectors is similarangleTest
Replace ID-strings of data and associated files.anonymize
apply affine transformation to dataapplyTransform applyTransform.default applyTransform.matrix applyTransform.mesh3d
compute the area of an n-dimensional hypersphereareaSphere
compute the area of an n-dimensional hypersphere capareaSpherePart
calculate Pseudo-inverse of a Matrix using RcppArmadilloarmaGinv
reverts list2array, converting an array to a list of matricesarray2list
calculate mean of an arrayarrMean3
Assess differences in amount and direction of asymmetric variation (only object symmetry)asymPermute
calculates the barycenters for all faces of a triangular meshbarycenter
concatenate multiple arrays/matricesbindArr
Landmarks and a triangular meshboneData boneLM skull_0144_ch_fe.mesh
calculate common allometric componentCAC
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 typprobClassclassify classify.bgPCA classify.CVA classify.typprob
Project coordinates onto a target triangular surface mesh.closemeshKD
predefined colors for bone and skinbone1 bone2 bone3 colors skin1 skin2 skin3 skin4
Compute area enclosed within an irregular polygoncomputeArea
calculate an affine transformation matrixcomputeTransform
calculates distances and PC-coordinates of covariance matricescovDist covPCA
calculate the pooled within groups covariance matrixcovW
Create an atlas needed in placePatchcreateAtlas
Create Matrices necessary for Thin-Plate SplineCreateL
create a list with empty entries to be used as missingList in slider3dcreateMissingList
calculate the orthogonal complement of a 3D-vectorcrossProduct tangentPlane
calculate Centroid Size for a landmark configurationcSize
cut a mesh by a hyperplane and remove parts above/below that planecutMeshPlane
separate a 3D-pointcloud by a hyperplanecutSpace
Canonical Variate AnalysisCVA
creates 3D shapes from data to be saved as triangular meshesdata2platonic
visualise differences between two superimposed sets of 2D landmarksdeformGrid2d
visualise differences between two superimposed sets of 3D landmarksdeformGrid3d
make a curve equidistant (optionally up/downsampling)equidistantCurve
calculate variance of a distribution stemming from prediction modelsexVar exVar.lm exVar.mvr
fast kmeans clustering for 2D or 3D point cloudsfastKmeans
Import 3D surface mesh filesfile2mesh obj2mesh ply2mesh
Graphical interface to find outliers and/or to switch mislabeld landmarksfind.outliers
estimate missing landmarks from their bilateral counterpartsfixLMmirror fixLMmirror.array fixLMmirror.matrix
estimate missing landmarksfixLMtps
find indices of faces that contain specified verticesgetFaces
get number of meaningful Principal componentsgetMeaningfulPCs
Get viewpoints on a sphere around a 3D meshgetOuterViewpoints
Obtain PC-scores for new landmark datagetPCscores
determine the minimum ratio for two subsequent eigenvalues to be considered differentgetPCtol
Get the linear combinations associated with the common shape change in each latent dimension of a pls2BgetPLSCommonShape
compute changes associated with 2-Block PLS-scoresgetPLSfromScores
compute 2-Block PLS scores for new datagetPLSscores
Get a point along a line with a given distance from the start of the linegetPointAlongOutline
try to identify bilateral landmarks and sort them by sidegetSides
get 4x4 Transformation matrixgetTrafo4x4 getTrafo4x4.rotonto
compute a 4x4 Transformation matrix for rotation around an arbitrary axisgetTrafoRotaxis
find vertices visible from a given viewpointsgetVisibleVertices
Perform PCA based of the group means' covariance matrixgroupPCA
plot histogram for multiple groups.histGroup
match two landmark configurations using iteratively closest point searchicpmat
Inscribe the maximum ellipse into any arbitrary 2D polygoninscribeEllipse
Inscribe the maximum ellipse into any arbitrary 2D polygon including rotationsinscribeEllipseRot
invert faces' orientation of triangular meshinvertFaces
Calculates the Riemannian distance between two superimposed landmark configs.kendalldist
get intersection between a line and a planeline2plane
plot lines between landmarkslineplot
converts a list of matrices to an arraylist2array
convert data from LPS to RAS space and backLPS2RAS
find nearest neighbours for 2D and 3D point cloudsmcNNindex
merge multiple triangular meshes into a single onemergeMeshes
convert a colored mesh to greyscale.mesh2grey
export mesh objects to diskmesh2obj mesh2ply
calculate the corners of a mesh's bouning boxmeshcube
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 planemeshPlaneIntersect
calculate average edge length of a triangular meshmeshres
mirror landmarks or triangular mesh in placemirror mirror.matrix mirror.mesh3d
mirror points or mesh on an arbitrary planemirror2plane mirror2plane.matrix mirror2plane.mesh3d
extract data from array namesname2factor name2num
Estimate the shape by averaging the shape of the nearest neighbours.NNshapeReg
landmarks and a triangular mesh representing a human noselongnose.lm nose shortnose.lm shortnose.mesh
align two 3D-pointclouds/meshes by their principal axespcAlign pcAlign.matrix pcAlign.mesh3d
visualization of shape variationpcaplot3d pcaplot3d.nosymproc pcaplot3d.symproc
correlation between a reduced space and the original spacePCdist
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 sampleplacePatch
plot the result of slider3dplot.slider3d
visualize an atlas defined by createAtlasplotAtlas
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 variableplsCoVar
Compute the shape changes along the common axis of deformationsplsCoVarCommonShape
projects a 3D coordinate orthogonally onto a planepoints2plane
fast Principal Component Analysis (PCA)prcompfast
Compute between-group-PC scores from new datapredict.bgPCA
Compute CV-scores from new datapredict.CVA
predict 2 Block-PLS from new datapredictPLSfromData
predict data from 2-Block PLS-scorespredictPLSfromScores
predict relative warps for data not included in the training data setpredictRelWarps
Predict shapes based on linear models calculated from PCscorespredictShape.lm
calculate weights inverse to the distances from the specified observation.proc.weight
Procrustes ANOVA for structures with object symmetryprocAOVsym
Workhorse function for procSym, responsible for Procrustes registrationProcGPA
Procrustes registrationprocSym
Project points onto the closest point on a meshprojRead
Q-Q plot to assess normality of dataqqmat
converts a mesh containing quadrangular faces into one only consisting of trianglesquad2trimesh
Export data to MorphoJ and Morphologikar2morphoj r2morphologika
projects the vertices of a mesh along its normals onto the surface of another one.ray2mesh
batch import data from filesread.csv.folder
read fiducials from slicer4read.fcsv
read dta filesread.lmdta
Read saved pick-points from meshlabread.mpp
reads pts filesread.pts
read Landmarks from Slicer in Json formatread.slicerjson
Import landmarks and outlines from TPS filesreadallTPS
import landmark data from csv filesreadLandmarks.csv
correlation between shape space and tangent spaceregdist
calulate regression scores for linear modelRegScore
relax one specific landmark configuration against a referencerelaxLM relaxLM.matrix relaxLM.mesh3d
calculate relative Warp analysisrelWarps
plot or save the results of meshDistexport export.meshDist render render.matrixDist render.meshDist
Resample a curve equidistantlyresampleCurve
restore original data from PCArestoreFromPCA
restore shapes from PC-Scores or similar projectionsrestoreShapes
symmetrize a bilateral landmark configurationretroDeform3d
symmetrize a triangular meshretroDeformMesh
Rotate an object (matrix or mesh) around an arbitrary axis in 3Drotaxis3d rotaxis3d.matrix rotaxis3d.mesh3d
calculate a rotation matrix around an arbitrary axis through the origin in 3DrotaxisMat
rotate ,scale and translate a mesh based on landmark information.rotmesh.onto
rotate matrix of landmarksrotonmat
rotates, translates and scales one matrix onto an other using Procrustes fittingrotonto 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 systemsolutionSpace
sort curvepoints by using the subsequent neighbourssortCurve
create a perfectly symmetric version of landmarkssymmetrize
thin plate spline mapping (2D and 3D) for coordinates and triangular meshestps2d tps3d
calculate typicality probabilitiestypprob typprobClass
some little helpers for vertex operations on triangular meshesrmUnrefVertex rmVertex unrefVertex vert2points
update a vector of indices after removal of some referenced itemsupdateIndices
Compute face or vertex normals of a triangular meshfacenormals updateNormals
convert an 3D array into a matrix and backvecx
remove all parts of a triangular mesh, not visible from a set of viewpointsvirtualMeshScan
Creates a sequence of images showing predefined steps of warping two meshes or landmark configurations (2D and 3D) into each otherwarpmovie2d warpmovie3d warpmovie3d.matrix warpmovie3d.mesh3d
write fiducials in slicer4 formatwrite.fcsv
exports a matrix containing landmarks into .pts formatwrite.pts
Export landmarks (or any 3D coordinates) to the new slicer json formatwrite.slicerjson