Note: this program is out of date! See the new Windows version.
TPSREGR - Thin-plate splines regression analysis
F. James Rohlf
6 July 1993
Department of Ecology and Evolution
State University of New York at Stony Brook
Stony Brook, NY 11794-5245
f.james.rohlf at stonybrook.edu
The purpose of this program is to regress the shape of a
collection of specimens (captured as coordinates of landmarks)
onto an independent variable. The independent variable might be
size in a study of allometry or it could be longitude,
temperature, or any other variable of interest.
The program regresses the partial warp scores (the weight
matrix of partial warp scores) onto the independent variable and
then plots a thin-plate spline as a function of the independent
variable so that one can see the shape change associated with
larger or smaller values of the independent variable. An
alternative is to read in a vector giving an explicit linear
combination to be used.
The reference configuration must be supplied as a file (it can
be computed by the GRF, GRF_ND, or TPSRW programs). Either the
raw coordinate data (usually the most convenient way to use the
program) or files giving the weight matrix, principal warps and
their eigenvalues must be provided. The regression makes most
sense if the reference configuration is such that it corresponds
to the average of the independent variable.
There are two versions of the program. One for DOS real mode
and another for DOS protected mode (DPMI). Their use is identical
except that the protected mode version requires that the RTM.EXE
program be present (it will be loaded automatically in order to
switch TPSRW into protected mode). Unless you are using software
that provides DPMI services (e.g., Windows, 386Max, OS/2) the file
DPMI16BI.OVL must also be present. The protected mode version
requires an 80386 or 80486 computer and is able to use both
ordinary RAM and extended memory so that larger datasets can be
processed. It does not make use of overlay files.
At present the DOS version can handle a maximum of 500 specimens
and 100 landmark points. The DPMI version can handle 2000
specimens and 200 landmarks. No attempt was made to push these
limits to their maxima. Please contact me if these limitations are
Note: this version requires a new set of BGI graphics driver
The program is still under development -- please be patient!
To use the program:
1. Type its name at the DOS prompt:> TPSREGR
2. A menu will be displayed. The legal options at a given time will
be shown highlighted.
3. First choose option 1 to specify the name of either the raw
data file or the file containing the weight matrix (computed,
for example, by the TPSRW program). If you provided a name for
the data file then the program will not ask for the name of the
weight matrix file. To provided the weight matrix leave the
name of the data file blank.
If you supply the name of a data file then you will be asked
whether you would like the x,y-projections of the uniform
component to be added in the weight matrix computed by the
program. This is of interest if you would like to see the
extent to which the uniform component can be predicted by the
independent variable. If you supply a weight matrix (such as
output by the TPSRW program), you will be asked whether the
"retain affine" option was used. This is so the program can
ignore the additional 6 columns added to the matrix. While
regression of all the affine parameters might sometimes be of
interest, it is not obvious how their effect should be plotted
so they are ignored for now.
All files must be in NTSYS-pc compatible formats.
The format is the same as used by the Fourier program in
NTSYSpc. There can be comment lines, followed by a matrix
header line, possibly followed by label lines, and finally
followed by x,y-coordinates as in the "matrix" format described
" fake data for 4 specimens (identical) with p=5 landmarks
1 4 10 0
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 0.0
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 0.0
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 0.0
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 0.0
The program will ask for a name to be given to an output
listing file. Various numerical results will be stored in this
file. If a file already exists with the name you specify you
will be asked whether to overwrite (and hence destroy) the old
file or to append the new information to the end of the old
Finally, the program will ask for the name of a file giving
a list of pairs of landmarks to connect in output plots.
This can sometimes make the plots easier to visualize.
This input is optional. The input format is that for a
graph matrix in NTSYS-pc. An example is as follows for
5 landmarks and 3 links (or edges of a graph) to be drawn.
The value for the length of each edge does not matter but
it must be provided.
" Example of link matrix (type=7) for 5 landmark & 3 edges
" to be shown.
7 5 3 0
1 3 0.0
3 4 0.0
1 4 0.0
4. Next, select option 2 to specify the reference configuration.
It must be provided as an NTSYS-pc compatible file. An average
consensus configuration can be computed by the TPSRW and GRF_ND
The file reference can be dimensions x landmarks, landmarks x
dimensions, or strung out as a single array in the order:
1x, 1y, 2x, 2y, etc. for a total of 2p elements.
If a weight matrix was provided (rather than a data matrix)
then the program will ask what value was used for the
exponential weight, alpha, in computing the weight matrix. The
published accounts of relative warp analysis (Bookstein, 1991,
or PMMW pp. 246-248) are equivalent to alpha = 1 (which
corresponds to an inverse bending energy metric. It does not
matter (for this program) what value of alpha was used.
The reference configuration should correspond to a specimen
that is average for the population.
5. Next choose option 3 or 4 to either read in the file containing
the independent variable (the program will estimate the
relationship with the partial warps by using regression) or to
read a vector giving the weights for each partial warp (perhaps
a discriminant function vector). In both cases the vector must
be an NTSYS-pc file with only 1 row (or column) containing
values. For option 3, its length must be the number of
objects (specimens) in the data file. For option 4 the
length must be equal to 2(p-3) if the uniform component is
not added or 2(p-3)+2 if the uniform component is added to
the weight matrix, where p=number of landmarks.
6. Next choose option 5 to perform the computations. If an
independent variable was read and the sample size is larger
than the number of parameters, then you will be given a choice
of whether to: (L) regress W on X using least-squares (the
usual case), (M) use major axis regression (PCA, see Biometry
section 15.7), or (I) to use a multiple regression of X on W
(but then the estimated relation has to be inverted, see the
next paragraph). Enter the letter (L,M, or I) for your choice.
Note: multiple regression cannot be used unless there are more
observation than parameters being estimated. The menu choice
will not be shown if that method cannot be used. The "inverse"
is computed as follows. First, the usual regression is made of
the variables in the weight matrix (W) onto the independent
variable. Interpret the coefficients (ignoring the intercept)
as defining a gradient vector through the centroid of the space
(points in direction that fitted hyperplane is steepest).
Project points onto this vector to determine the relationship
between it and the independent variable. Use that relationship
to predict the values in the weight matrix as a function of the
independent variable. This often does not work very well.
You may wish to try it just to obtain a significance test
for the relationship between shape and the independent
If an independent vector was read, then you will be given two
choices: (P) project the objects onto the vector and then use
lease-squares to regress the partial warps onto the projection
or (W) use the coeficients as is to weight the principal warps.
Enter the letter (P or W) for your choice. Use (W) to
visualize a particular warp or combination of warps and uniform
component. The plot produced when the (P) option is used often
does not correspond to particular warp you tried to select
since other partial warp scores may be highly correlated with
it in your sample of specimens. With the (W) option the scale
is arbitrary. Be prepared to press the "+" or "-" keys many
times in order to view the plot.
The numerical results will be written to the listing file.
Messages will be displayed on the screen showing progress
through the computations. If the program runs out of memory
you may only get a message that says "Out of memory!".
7. The last choice, "C", should be specified before you try to
get hardcopy of the plots shown in the other menu choices.
See the section "Graphics hardcopy" below for more information.
8. Next you can choose any of the plotting options (options 6 -
7). See below for information about each type of plot.
6 - Plot partial warp scores against the independent variable
This menu item plots the partial warp scores for each specimen
against the independent variable. If the uniform components
are included then they can also be plotted (they are placed at
the end). Note: this option cannot be selected if an
independent vector is used.
1. Press the "+" and "-" keys to cycle through the partial warps.
2. Press "L" to toggle the labelling of the specimens.
3. Press "P" for graphics hardcopy.
4. Press the "ESC" key to exit.
7 - Plot regression as a spline
This plot shows the thin-plate spline. It will cycle through
displays to give an animated display of the spline being deformed
for larger and then smaller values of the independent variable.
1. You can select the magnitude of the range of the independent
variable by pressing the 'M' key followed by pressing the + and
- keys. The value of X is displayed. When the correlations
with the independent variable are very small you will have to
greatly enlarge the range in order to see any effect.
This is the default mode. The initial displayed range is half
of the observed range. Pressing + will double this range.
2. If the uniform components are included then you can press the
"U" key to toggle their contributions off and on. Likewise,
you can press the "N" key to toggle the display of the
nonuniform (local deformation) components off and on.
A message will be displayed at the upper left of the screen to
indicate their current status.
3. If you press "C" the landmarks for each specimen will be
connected by a series of lines in the order in which the
landmarks were entered. Press "C" again to turn this display off.
4. Press the "L" key to display labels for the points. Press it
again to turn off their display.
5. Press the "V" key to display displacement vectors. Press it
again to turn them off. These vectors are plotted only on the
untransformed grid. The end points of the vectors are the
locations of each point after the transformation that is about
to be applied. The vectors are usually similar to the relative
warp loading vectors. Sometimes they are quite different.
6. To print a copy of the graphics screen press "P". The program
will then prompt for you to press either the "+" or the "-"
keys. This allows you to specify whether to output the spline
based on the positive or negative warping of the space.
The screen will clear until the plot is complete.
7. Press the "E" key to toggle the plot of the line segments between
pairs of landmarks on and off. Uses the link file if present.
8. Press the "R" key to reset the display back to the default.
9. For fast computers you can press the "D" key followed by the
"+" key to increment (by 0.5 sec) the delay between succesimve
displays. If you increase it too much you can decrease the
delay by pressing the "-" key. The computer will beep if you
attempt to reduce the delay below 0 (you cannot speed up the
computations by having a negative delay!).
9. Press the ESC key to exit.
Configuration for graphics hardcopy
A window will be displayed that lists the various devices and
their modes. Another window will then be displayed that asks for
a device or file name. If you would like the output written to a
file for later use then enter a valid file name. The name should
be short to allow for the fact that the program will append a
number so that each picture can be stored in a separate file.
To have the output sent directly to a printer attached to a
printer port enter LPT1 or LPT2. For output directly to a printer
or a plotter attached to a serial port enter COM1 or COM2. In the
later case you must also specify the baud rate, parity, number of
data bits, and whether or not to use XON/XOFF protocol.
The available baud rates are: 300, 1200, 2400, 4800, and 9600.
Parity can be N (none), E (even), or O (odd). The number of data
bits can be 7 or 8. Use the symbol "X" to indicate XON/XOFF.
These codes are entered after the port name. For example, for
a plotter attached to COM1 and working with 2400 baud, no parity,
8 data bits, and using XON/XOFF enter the following:
The following printers are supported: Epson 9-pin printers
(including Epson FX and MX, IBM Graphics Printer and Proprinter,
and Panasonic and OkiData ["native" or with Epson or IBM
emulation]), Epson 24-pin printers (includes Epson LQ, NEC
Pinwriter, and Panasonic printers with Epson emulation), and
Toshiba P321 24-pin printer. The Epson 9-pin and 24-pin color dot
matrix printers are supported. The HP LaserJet (all models), HP
DeskJet (all models), and Canon LBP-8 laser and inkjet printers
The following plotters are supported: HP7470, HP7475, and
HP7585. Many other plotters are compatible with these plotters.
If the plotting information is written to a file it can be read by
many word processors, desktop publishing programs, and by graphics
In addition, you can select output formats of CGM, GEM IMG,
PCX, WordPerfect WPG, and TIFF (both compressed and uncompressed).
MS Windows bitmap files (BMP) are also supported. These are
useful in order to import the graphics into various desktop
publishing and "paint" programs where you can add annotations,
delete unwanted details, etc.
These are the files that provide the graphics support to the
program. You only need to have the BGI files on your disk for the
devices you expect to use. If you do not have the proper graphics
BGI file you will not be able to see a plot on the screen. If the
proper BGI file for graphics hardcopy is not present the program
will exit back to the main menu without any error message. The
correspondence between BGI files and devices is given below.
_CANON.BGI Canon LBP-8 printer
_CFX.BGI 9-pin color dot matrix
_CLQ.BGI 24-pin color dot matrix
_DIC.BGI Kodax Diconic printer
_DJ.BGI HP DeskJet printer
_DJC.BGI HP Color DeskJet printer
_DMPL.BGI DM/PL plotters
_FX.BGI Epson 9-pin printers
_HP7470.BGI HP7470 plotter
_HP7475.BGI HP7475 plotter
_HP7550.BGI HP7550 plotter
_HP7585.BGI HP7585 plotter
_LQ.BGI Epson 24-pin printers
_LJ.BGI HP LaserJet printer
_LJ3R.BGI HP LaserJet III printer
_OKI92.BGI Okidata 92 native mode
_PJET.BGI HP paintjet
_PP24.BGI 24 pin dot matrix
_TJ.BGI HP ThinkJet printer
For the above devices you will need to know how it is attached
to your computer (printer or serial port). In the case of a
serial port you will also need to know the baud rate, parity,
number of data bits, and whether the XON/XOFF protocol is used.
Graphics file formats:
_AI.BGI Adobe Illustrator Postscript
_BMP.BGI MS Windows bitmap files
_CGM.BGI CGM files
_IMG.BGI GEM IMG files
_PCX.BGI PCX paint file format
_TIFF.BGI Compressed TIFF format
_UTIFF.BGI Uncompressed TIFF format
_WPG.BGI WordPerfect WPG files
The BGI files whose names begin with "_" are part of the
GRAF/DRIVE package from Flemming Software as is the GCOPY.EXE
program that can be used to copy graphic files to a printer or
plotter. Type GCOPY and instructions will be displayed.
Sample data files
A set of data files are provided as an example. They are the
rat calvarial growth dataset described on pages 408-414 in the
"orange book" (Bookstein, 1991). The file RATS.NTS contains the
x,y-coordinates in NTSYS-pc compatible format. Each specimen is a
row of the matrix and the 16 columns correspond to the x and y
coordinates for the 8 landmarks. The RATS.REF file contains
coordinates that can be used as a reference and the RATS.SIZ file
contains the centroid size of each specimen. The file RATS.LNK
is an example of a matrix of edge links (not actually needed
for this dataset since the landmarks were digitized in a logical
order so that the "Connect" option will link them automatically.
The file RATS.V1 provides and example of an independent vector
that can be used to display the first principal warp. It is of
length 10. Thus it assumes that the uniform components are not
added. Use option (W) when computing the regression.
Note: the specimens are ordered as in Bookstein (1991),
specimen 1 ages 7 to 150 days, then specimen 2 ages 7 to 150 days,
The program produces a rather modest listing file containing
printouts of some of the matrices involved. Of most interest will
be the listing giving the mean partial warp scores and the
regression coefficients on the independent variable. It may be of
interest to discover which principal warps are most correlated
with the independent variable. If the first few warps are highly
correlated then the effect of the independent variable is
localized. If only the last few partial warps are highly
correlated then there are large-scale effects.
The uniform components have very large correlations with the
independent variable. As one might expect, You may find that the
three different regression techniques yield quite different
coefficients. When the correlations are all very low you may have
to greatly magnifiy the plot of the splines in order to see
anything happening (if the correlations were all equal to zero
then no amount of magnification would show any "action" in the
Changes from previous version
7/6/93 Recompiled for BP7 and added support for DOS DPMI mode.
Increased the size of datasets that could be processed.