Error message: Singular BE matrix: 'a' is computationally singular

7 views
Skip to first unread message

Claudia

unread,
Jul 2, 2025, 5:35:48 PMJul 2
to geomorph R package
Hi - I created a morphologika file with a few specimens to learn how to use geomorph, but I'm having some problems that I didn't run into when using the geomorph 3D dataframes (e.g., scallops).  After reading my data in as a morphologika file, I also imported a classifier file, a curvslide file, and a surfslide file. 

I am having trouble performing GPA and testing for bilateral (matching) asymmetry.  When I do so, I get an error message, as follows:   

Singular BE matrix; using generalized inverseError in .solve.checkCond(a, tol) : 'a' is computationally singular, rcond(a)=7.4774e-18

I'm not sure what I'm doing incorrectly - I searched for this solutions to this error message (e.g., substack) but didn't resolve my issue.  

I've attached my R script file (Astorino_R_script_7.2.25), morphologika file (mastoid_F_OLD_EUR.EU.txt), classifier file (classifier_mastoid_F_OLD_EUR.EU.csv), curvslide file (curvslide_mastoid.csv), and surfslide file (surfslide_mastoid.csv) to this email.  

Could you please help determine why I can't perform GPA or test for bilateral asymmetry?

Thank you so much!

Best,
Claudia
curvslide_mastoid.csv
mastoid_F_OLD_EUR.EU.txt
surfslide_mastoid.csv
classifier_mastoid_F_OLD_EUR.EU.csv
Astorino_R_script_7.2.25.R

Adams, Dean [EEOB]

unread,
Jul 2, 2025, 6:02:10 PMJul 2
to geomorph R package
Claudia,

I found a few things that are causing errors.

1: The curves and surface landmarks cannot be the same landmarks, but they are in your "sliders_mastoid" and "curves_mastoid".  designating 'curves = xxx' is for sliding landmarks on curves, while 'surfaces = ...' are for sliding landmarks on surfaces. Each landmark in your datafile can be fixed, a curve point, or a surface point, but not multiple of these. This causes things to blow up in your example.

2: Because you are attempting to slide semilandmarks I recommend that you perform gpagen first and specify this. Then provide these landmarks to bilat.symmetry. It will be easier to trouble shoot.

3: Please see the help files for both functions for proper use of each argument in the functions. This is the cause of the  problems you are having.  

Dean
--
Dr. Dean C. Adams
Distinguished Professor
Director, Ecology and Evolutionary Biology Graduate Program
Department of Ecology, Evolution, and Organismal Biology
Iowa State University

From: 'Claudia' via geomorph R package <geomorph-...@googlegroups.com>
Sent: Wednesday, July 2, 2025 4:35 PM
To: geomorph R package <geomorph-...@googlegroups.com>
Subject: [geomorph-r-package] Error message: Singular BE matrix: 'a' is computationally singular
 
--
You received this message because you are subscribed to the Google Groups "geomorph R package" group.
To unsubscribe from this group and stop receiving emails from it, send an email to geomorph-r-pack...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/geomorph-r-package/faaa66c5-d809-490d-a1a1-1003c48b84f9n%40googlegroups.com.

Claudia

unread,
Jul 2, 2025, 9:52:58 PMJul 2
to geomorph R package
Hi, Dean - thank you so much for your detailed response!  I re-ran my analyses just using curvslide (and not surfslide) since I want to slide my semilandmarks along the defined curves, and I'm able to do gpagen.  I'm going to take a look at the help files and try testing for bilateral asymmetry again.

Best,
Claudia
Reply all
Reply to author
Forward
0 new messages