External Email - Use Caution
Thank you for your reply! Using DOSS is precisely what I was trying to do, but mri_glmfit doesn't let me. I worked around by creating the design matrix in matlab and specify it to mri_glmfit directly, but I was wondering whether this might be bug in the parsing of the FSGD file. As a minimal example to reproduce, see the attached file. Trying to run mri_glmfit (doesn't even need more input specified), I get:
$ mri_glmfit --fsgd dosstest.fsgd doss gdfRead(): reading dosstest.fsgd INFO: DeMeanFlag keyword not found, DeMeaning will NOT be done. Continuous Variable Means (all subjects) 0 C 32.1111 8.50417 1 D 0.555556 0.496904 2 E 5.44444 3.49956 Class Size and Means of each Continuous Variable 1 A 1 50.0000 1.0000 4.0000 2 B 8 29.8750 0.5000 5.6250 ERROR: Class A has 1 members. With 3 variables and using DODS, you need at least 4 members
dosstest.fsgd: GroupDescriptorFile 1 Title DOSSTest DOSS Class A Class B Variables C D E Input SUBJECT1 A 50 1 4 Input SUBJECT2 B 30 0 12 Input SUBJECT3 B 29 0 5 Input SUBJECT4 B 31 1 3 Input SUBJECT5 B 20 1 4 Input SUBJECT6 B 42 1 6 Input SUBJECT7 B 33 0 11 Input SUBJECT8 B 30 0 1 Input SUBJECT9 B 24 1 3
Concerning demeaning: I am only going to use a contrast vector for differences in intercept between the groups [-1 1 0 0 0] and had the understanding that demeaning would't be necessary in this case. Am I mistaken or is there other reasons to do this especially for eTIV?
Thank you very much and with best wishes, Cornelius
Date: Fri, 9 Jul 2021 14:05:31 -0400 From: "Douglas N. Greve" dgreve@mgh.harvard.edu Subject: Re: [Freesurfer] mri_glmfit DOSS
You cannot use a DODS in this design as it tries to fit an offset and a slope for each class, which can't be done when the class has only one member. Try using DOSS instead. You should probably demean and rescale the eTIV to be between 0 and 1.
On 6/29/2021 11:19 AM, Dr. Cornelius Kronlage wrote:
????????External Email - Use Caution
Dear freesurfers,
for a morphometry study, I am comparing a single subject at a time to a group of controls. I would like to include age, gender (as a continuous variable for the sake of simplicity) and eTIV as ?nuisance? regressors in the GLM. The FSGD looks like this:
GroupDescriptorFile 1 ?? ?Title SUBJECT1_vs_allControls ?? ?Class Test ?? ?Class Controls ?? ?Variables Age Gender eTIV
Input SUBJECT1 Test 50 1 1497422.2500 Input SUBJECT2 Controls 30 0 1709039.536815 Input SUBJECT3 Controls 29 0 1423097.816203 Input SUBJECT4 Controls 31 1 1524690.026713 ...
When I try to run mri_glmfit I get the following error even though I specify DOSS:
$ mri_glmfit --fsgd SUBJECT1_vs_allControls.fsgd doss [...]
gdfRead(): reading SUBJECT1_vs_allControls.fsgd WARNING: variable 1 is "Gender" which is often a discrete factor ? The proper way to handle discrete factors is to create classes. ? See https://secure-web.cisco.com/1pPOfqP7ALbHwAeCTJZowgLS8JJNUeA6-Z2RJlgx_6oCnQF... INFO: DeMeanFlag keyword not found, DeMeaning will NOT be done. Continuous Variable Means (all subjects) 0 Age 28.6875 6.36611 1 Gender 0.46875 0.499022 2 eTIV 1.51444e+06 125811 Class Size and Means of each Continuous Variable 1 Test? 1? 50.0000?? 1.0000 1497422.2500 2 Controls 31? 28.0000?? 0.4516 1514993.8589 ERROR: Class Test has 1 members. With 3 variables and using DODS, you need at least 4 members
How do I get mri_glmfit to use DOSS, or do I have to specify the design matrix by hand in this case?
Thank you!
Best wishes Cornelius
freesurfer@nmr.mgh.harvard.edu