To Polly Lab Home Page Links

People

Research Projects

Publications

Software

Data

Courses

Links


IU Collection

Pleistocene mammal fossils from the Harrodsburg Fissue in the Indiana University Paleontology Collection (see online catalogue).


 

[Geometric morphometrics for Mathematica]
[Morphological integration and modularity for Mathematica]
[Quantitative paleontological analysis for Mathematica]
[Quantitative paleontological analysis for R]

Mathematica Morphometrics Package

Download Polly Morphometrics 8.2 here
User's Guide here
Updated 28 January, 2012

This Mathematica add-on package performs common geometric morphometric functions. Includes Procrustes superimposition, thin-plate spline graphics, Centroid Size calculation, Procrustes distance calculation, Mantel tests, Ancestral Node reconstruction, and import function for TPS files.

Installation: The file is a ".m" file, which can be imported into Mathematica 6.0 and later (functions do not work in earlier versions of Mathematica). Install using the "Install" item on the "File" menu. Once installed, you must load the package like any other with the line "<<PollyMorphometrics", using either this suggested name or another. If some functions do not work, load the MultivariateStatistics and Combinatorica packages.

This package is used in the Indiana Univesrity course G562, Geometric Morphometrics.

8.2 fixes:Adds to Version 8.1 byadding single-function principal component analysis of shape for 3D landmarks, adding a function to flip coordinates collected in ImageJ, and by fixing bug for 3D Procrustes that was introduced by feature that orients 2D landmarks.

8.1 fixes: Version 8.0 adds several new functions for complete analysis, including PrincipalComponentsOfShape[]. 8.1 fixes problems with that function, plus it adds functionality for tpsImport[] for Mac OS X files and for files without IMAGE tags.

7.3 fixes: Version 7.3 implemented added an optional second parameter to tpsImport[] to specify the number of landmark coordinates (2 or 3). For 2D landmarks nothing needs to be specified, for 3D landmarks you must enter the numeral "3" as the second parameter.

7.2 fixes: Version 7.2 fixed yet more issues with 3D landmarks in Procrustes[] and ProcrustesSized[] functions. Also contains the updates of 7.1, which were: fixed issues in the Mantel test function and in the tpsImport function (the latter now reads 3d landmark files correctly).

PREVIOUS VERSIONS:
PollyMorphometrics8.1.m

PollyMorphometrics8.0.m
PollyMorphometrics7.3.m
PollyMorphometrics7.2.m
PollyMorphometrics7.1.m
PollyMorphometrics6.0.m


Quantitative Paleontology Mathematica Package

Download Polly Quantitative Paleontology 1.7 package here
User's Guide here

This package is for use with G690, Quantitative Paleontology, Fall 2010.

The file is a ".m" file, which can be imported into Mathematica 6.0 and later (functions do not work in earlier versions of Mathematica). Install using the "Install" item on the "File" menu.

Once installed, you must load the package like any other with the line "<<PollyQuanPaleo", using either this suggested name or another. If some functions do not work, load the DataLink packages.

Previous Versions:
Polly Quantitative Paleontology 1.0
Polly Quantitative Paleontology 1.1
Polly Quantitative Paleontology 1.2 [User's Guide 1.2]
Polly Quantitative Paleontology 1.3 [User's Guide 1.3]
Polly Quantitative Paleontology 1.4 [User's Guide 1.4]
Polly Quantitative Paleontology 1.5 [User's Guide 1.5]
Polly Quantitative Paleontology 1.6 [User's Guide 1.6]


Modularity for Mathematica

Download the Modularity 1.0 package here
User's Guide here
Marmot data set
Macaque data set

This package contains functions for analyzing morphological integration and modularity. The scope of the package and instructions for its use are contained in the accompanying User Guide. It accompanies the review of modularity by Goswami and Polly (2010).  Users are referred to that paper for a discussion of the methods embedded in this package, including their strengths and weaknesses, and for elaboration of other methods that address broader problems.  

The package itself is a ".m" file, which can be imported into Mathematica 6.0 and later (functions do not work in earlier versions of Mathematica). Save the file as text then install using the "Install" item on the "File" menu. Once installed, you must load the package like any other with the line "<<Modularity`", using either this suggested name or another.


R Functions

These functions were written by A. Michelle Lawing, Valerie J. Syverson, and P. David Polly for use in two Indiana Unversity classes (GEOL G-600 "Geometric Morphometrics" and GEOL G-690 "Quantitative Paleontology") and in the Paleobiology Database short course. They can be used either by clicking on the function name and pasting the text file into R. If you would like to load all of these functions, use the following R command:

source("http://mypage.iu.edu/~pdpolly/Software/RFunctions/AllFunctions.R")


For Geometric Morphometrics

collect.landmarks()
A function to open jpeg files and collect landmarks. Requires the ReadImages library.

collect.landmarksScale()
A function to open jpeg files and collect landmarks where each image has a scale bar. The first two points define the ends of the scale bar. Requires the ReadImages library.

collect.outlines()
A function to open jpeg files and collect landmarks where the landmarks are afterwards resampled down to n equally spaced outline points. Requires the ReadImages library.

fix.landmarks()
Allows errors to be corrected in data generated by collect.landmarks().

fix.outlines()
Allows errors to be corrected in data generated by collect.outlines().

efourier()
Function from Julien Claude's text for generating eliptical fourier coefficients from 2D points.

GPA.by.hand()
Code to perform steps in generalized Procrustes analysis to see what they do.

grf2()
performs a generalized resistant fit theta rho analysis

group.dists()
Returns the Procrustes distances between group means given landmark coordinates of several samples. Requires shapes() library.

read.tps()
Reads a simple TPS file. Note that this function only reads data that are classed as landmarks or outlines. Landmarks are returned inthe format used by Ian Dryden's shapes() package.

read.tps()
If the above function doesn't work for your TPS file, try this one. This should work with 3D landmarks. Landmarks are returned inthe format used by Ian Dryden's shapes() package.

write.landmarks()
Function that takes a three-dimensional array of landmarks that are in the format for the shapes() package and writes them as a comma-delimited text file.

write.tps()
Writes a text file of landmark coordinates in TPS format. Data to be written should be in the format used by Ian Dryden'' shapes package.


Monte Carlo Methods for Evolutionary Lineages

degrade()
Subsamples from a monte carlo lineage produced by the random walk function.

long.randomwalk()
Performs a randomwalk of n generations, reporting the values of traits at the end of the random walk.

long.randomwalk.efficient()
Performs a randomwalk of specified number of generations, reporting the values of traits at the end of the random walk. Draws from a single normal distribution so it is very quick.

randomwalk()
Generates a brownian-motion random walk and saves each step for plotting.


Rates of Evolution

lri()
Performs Gingerich's Log-rate/Log-interval analysis of evolutionary rates. Note that this function does not use robust regression as recommended by Gingerich and so may produced biased estimates of the per-generation rate of evolution. Data are dentered as a two-column matrix, the first column with morphological measurements, the second with the age of the stratum.

lriInt()
Performs Gingerich's Log-rate/Log-interval analysis of evolutionary rates. Note that this function does not use robust regression as recommended by Gingerich and so may produced biased estimates of the per-generation rate of evolution. Data are entered into the function as a pairwise distance matrix and an interval matrix.


Morphological Disparity

disparity.univariate()
Calculates morphological disparity from univariate data.

group.disparity()
Calculates morphological disparity among gorup means for several groups with multivariate data.

individual.disparity()
Returns the disparity among individuals of a sample.


Monte Carlo Methods for Diversity and Clade Dynamics

Cohort.Plot()
Performs a cohort analysis of survivorship on clade data that are in the format created by LetThereBeLight().

Diversity.Plot()
Produces a spindle diagram for a clade whose data are in the formated created by LetThereBeLight().

LetThereBeLight()
Simulates the evolution of diversity in one or more clades.

Lineage.Plot()
Produces a plot that shows the stratigraphic ranges of all lineages evolved in LetThereBeLight() simulation.


Footer
Department of Geological Sciences Indiana University e-mail: pdpolly@indiana.edu To Polly Lab Home Page