To place semilandmarks, without using MakeFan, you’d use the curve-tracing function in tpsDig. It’s the yellow-pencil icon. Start the curve and keep tracing it, placing a semilandmark wherever the curve changes direction (it does not matter if you place them densely, but if you place them too far apart, it will not provide an accurate estimate of the curvature). When you reach the end of the curve, right click, select the “by length” option (the default is “by step”) and enter the number of points that you want on that curve. The function will then give you equally spaced points along the curve). This function adds control lines that other programs cannot read, so when you are all done with the semilandmarks, you will need to remove them. That can be done using tpsUtil, the function is “Append tps Curve to landmarks.” This function will find any errors that you made (discrepancies in the number of points along curves) and you can open your tpsDig file, go to the specimen and curve that is identified as having the wrong number of points, and you can fix that and save the file. Then go back to tpsUtil, and again click “Create” and it will go on until the entire file is edited. Unfortunately, if you have specimens with the wrong number of curves, it will tell you that a specimen has the wrong number but it won’t tell you which specimen is the one missing a curve (or the one that has too many). If that happens, open your file in Notepad or Wordpad, do a search for “Curves”, find the specimen with the wrong number of curves, close the file and go back to tpsDig and fix it, then go back to tpsUtil. When you are all done, you will need to make the file that tells the superimposition program which points are semilandmarks and which points they slide between. You can make that file in tpsUtil, using the “make sliders file” functions. To superimpose the data (and slide the semilandmarks) you can use tpsRelw, but geomorph, the R package for geometric morphometrics is much faster. Also, once your data are in R you can do your entire analysis, not just superimpose the data and run a principal components analysis.
If you're working in 2D (i guess so, because you mention tps and MakeFan), then you can use TPSUtil and TPSRelW. With the first one you make your previously placed semilandmarks slide, with the second one you superimpose your (now) sliding semilandmarks to your previously placed landmarks. It takes you a while but tps software is free and quite user friendly. Hope this helps!
If you´re using 3D o even 2D data I highly reccomend using the Geomorph package of R software (Adams and Otarola-Castillo, 2013; R Developmental Core Team, 2013)
To place semilandmarks, without using MakeFan, you’d use the curve-tracing function in tpsDig. It’s the yellow-pencil icon. Start the curve and keep tracing it, placing a semilandmark wherever the curve changes direction (it does not matter if you place them densely, but if you place them too far apart, it will not provide an accurate estimate of the curvature). When you reach the end of the curve, right click, select the “by length” option (the default is “by step”) and enter the number of points that you want on that curve. The function will then give you equally spaced points along the curve). This function adds control lines that other programs cannot read, so when you are all done with the semilandmarks, you will need to remove them. That can be done using tpsUtil, the function is “Append tps Curve to landmarks.” This function will find any errors that you made (discrepancies in the number of points along curves) and you can open your tpsDig file, go to the specimen and curve that is identified as having the wrong number of points, and you can fix that and save the file. Then go back to tpsUtil, and again click “Create” and it will go on until the entire file is edited. Unfortunately, if you have specimens with the wrong number of curves, it will tell you that a specimen has the wrong number but it won’t tell you which specimen is the one missing a curve (or the one that has too many). If that happens, open your file in Notepad or Wordpad, do a search for “Curves”, find the specimen with the wrong number of curves, close the file and go back to tpsDig and fix it, then go back to tpsUtil. When you are all done, you will need to make the file that tells the superimposition program which points are semilandmarks and which points they slide between. You can make that file in tpsUtil, using the “make sliders file” functions. To superimpose the data (and slide the semilandmarks) you can use tpsRelw, but geomorph, the R package for geometric morphometrics is much faster. Also, once your data are in R you can do your entire analysis, not just superimpose the data and run a principal components analysis.
When I try to "Append tps Curve to landmarks" it always shows me the error "Invalid pointer operation". I just did a trial with only two specimens and a few landmarks and semilandmarks. "make sliders file" also produces only errors.
Send me your tps file and I'll see if I can figure out what the problem is. I've had that error message before, but I don't recall what caused it or what I did to fix it.
When using R-geomorph, is it right that I have to place 2D-semiLM first manually by hand along my supposed curve with 'digitize2d' as landmarks and then afterwards define those landmarks with 'define.sliders.2d' as semiLM?
I assume it will become hard then to get equally spaced semiLM in that way? Or will sliding be enough to overcome this?
The function 'digit.curves' seems to me a bit complicated as you would have to pre-define the curve(s) for each picture beforehand.
If you are using geomorph for digitizing, then you need to place the semilandmarks first, and then, if you want them to be equally spaced along the curve, use the digit.curves function, and then to define the sliders, use the define.sliders.2d function. So the digitize.2d followed by the digit.curves function replaces the curve-tracing and resample function of tpsDig, and the define.sliders.2d function replaces the "make sliders" function of tpsUtil.
I haven't used tpsRelw for sliding for several years, and it may be much faster now than it was. It took me several hours to slide 85 semilandmarks in a file of 1600 specimens (using the bending-energy criterion), but it takes minutes to complete the sliding of files at least twice as large as that one in geomorph. I would say that geomorph is the best program for sliding semilandmarks, at least for large files.
Really, I didn´t get what tpsRelw was doing?! Now, I managed it quite in good amount of time to do it in geomorph. But for some functions the descriptions and (sometimes not available) examples could be more detailed.
Miriam Leah Zelditch i have placed landmarks and semi-landmarks on the same tps file. Is that okay for analysis or do you suggest doing them in separate files?
I'm analysing fish hybrids. Regarding the semi-landmarks I've placed along the lateral line of the specimens. I was wondering can you somehow attach the beginning and end of the curve to landmarks?
They should be in the same file. When you finish digitizing, you'll use the append curve to landmarks function in tpsUtil to turn the semilandmarks into "landmarks" (instead of being just decorative, they will be points with coordinates). I don't know what exactly you mean by "attaching" the beginning and ends of the curves to landmarks. You can begin and end the curves at landmarks (i.e., begin and end the curve in the middle of a landmark) and delete that point when you've turned the semilandmarks into landmarks (that too you can do in tpsUtil with the delete landmarks function). When you make the sliders file (also in tpsUtil, with the make sliders function) you will tell the superimposition software that the first point on that curve should be slide between the adjacent landmark and semilandmark, so the superimposition software will know which landmarks are at the ends of the curves
Miriam Leah Zelditch , Peter Pogoda thank you very much for your contributions to this thread, they've proved very useful for me while getting familiar with the geomorph package. I'm now struggling to find of there's any possibility to visualize not only deformation grids for the X-axis while making the PCA, but also see how the shape changes alog the Y-axis. Could anybody help me with that please?
In the next release of geomorph, the function plotTangentSpace will be deprecated, replaced by gm.prcomp. There is now a function picknplot.shape, so you can click on a point in the plot and it will produce a picture, but I have not had much luck with that (I haven't figured out yet how to use that function effectively). What I've done is to save the results of gm.prcomp to the object Y.gm, then plot the objects Y.gm$shapes$shapes.PC1$max (just replace the 1 with a 2 to get the shapes along PC2).