Hi VM, Thanks for letting me know. The bug can be fixed, although it's probably better to simply drop the -saveparametric option. It's seldom useful and will likely be removed in a future version. The -zstat option was added automatically because the correction involves both t and F contrasts (more specifically, it involves contrasts with different ranks). Hope this helps. All the best, Anderson On 8 January 2017 at 00:43, neuroimage analyst <[log in to unmask] > wrote: > Thank you, Anderson. > > I ran the follwoing line: > palm -i bh_volume_con_s.15.mgz -i bh_cbf_con_s.15.mgz -i > bh_thickness_con_s.15.mgz -s bh.white -d design_matrix_con_vs_s.mat -t > contrast_matrix_con_vs_s.con -f f_contrast_matrix_con_vs_s.fts -o > /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh.results -n 100 -corrcon > -approx tail -T -tfce2D -logp -fdr -npc -saveparametric -Tnpc > -nouncorrected -corrmod > > After running for 2 days the script showed an error in saving the p-values: > > Computing p-values. > Saving p-values (uncorrected, and corrected within modality and within > contrast). > Saving file: /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh. > results_dpv_ztstat_fwep_m1_c1 > Saving file: /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh. > results_dpv_ztstat_fdrp_m1_c1 > Saving file: /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh. > results_tfce_ztstat_m1_c1 > Saving file: /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh. > results_tfce_ztstat_fwep_m1_c1 > Saving file: /media/sf_M_DRIVE/subjects/palm_stats/Con_vs_s/bh. > results_tfce_ztstat_fdrp_m1_c1 > > Undefined function or variable 'P'. > > Error in palm_saveall (line 323) > palm_quicksave(fastfdr(P),1,opts,plm,y,m,c, ... > > Error in palm_core (line 2474) > palm_saveall(plm,opts); > > Error in palm (line 81) > palm_core(varargin{:}); > > > It appears the error happened during computing fdr p-values. Would you > know why would that error occur? > > > Second, as you can see I didnt invoke zstat but the results are > "*_ztstat*'. Would you know why? > > Thanks > > Regards > > -VM > > On Sat, Jan 7, 2017 at 4:04 AM, Anderson M. Winkler < > [log in to unmask]> wrote: > >> Hi VM, >> >> So there is some overlap... group1 + group2 = subtype1 + subtype 2. The >> controls aren't part of this set. To get around the rank deficiency, leave >> EV10 without any splitting (i.e., coded as 0 for controls and +1/-1 for the >> two subtypes). >> >> All the best, >> >> Anderson >> >> >> On 6 January 2017 at 14:42, neuroimage analyst < >> [log in to unmask]> wrote: >> >>> Hi Anderson. >>> >>> Thanks. >>> >>> There are total of 155 patients which are classified into 60 as group 1 >>> and 95 as group 2. Out of these total 155 patients, 43 are subtype1 and >>> remaining as subtype2. There isn't a perfect overlap among the patient >>> subgroups. >>> >>> The EV for the design matrix has 170 rows. The way I code is EVx = 1 for >>> subtype1 ( total 43) 0 for all othrs and 1 for subtype2 ( total 112) 0 for >>> all others. I was thinking to create just 1 EV with 0 for controls, 1 for >>> subtype1 and -1 for subtype2. Is this coding not right? >>> >>> Thanks >>> Regards >>> -VM >>> >>> >>> On Jan 6, 2017 4:01 AM, "Anderson M. Winkler" <[log in to unmask]> >>> wrote: >>> >>>> Hi VM, >>>> >>>> Who are the patients? Are these the same as Group1 or Group2, or both? >>>> How does Patient Subgroups 1 and 2 differ from Groups 1 and 2? There may be >>>> some perfect overlap between some of these groups/subgroups... >>>> >>>> All the best, >>>> >>>> Anderson >>>> >>>> >>>> On 6 January 2017 at 05:12, neuroimage analyst < >>>> [log in to unmask]> wrote: >>>> >>>>> Hi Anderson. >>>>> >>>>> I forgot to ask this question. If I split EV 10 below into 2 EVs as >>>>> >>>>> EV 10: patient subgroup 1; controls and patient subgroup 2 =0 >>>>> EV11: patient subgroup 2 =1; controls and patient subgroup 1 =0 >>>>> >>>>> Then it will make the matrix rank deficient. What is the best way to >>>>> code them without making the matrix rank deficient? >>>>> >>>>> Thanks >>>>> >>>>> Regards >>>>> >>>>> -VM >>>>> >>>>> On Jan 4, 2017 3:34 AM, "AndersoM. Winkler" <[log in to unmask]> >>>>> wrote: >>>>> >>>>> Hi VM, >>>>> >>>>> Please see below: >>>>> >>>>> On 30 December 2016 at 23:01, neuroimage analyst < >>>>> [log in to unmask]> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I wish to compare cortical thickness across 3 groups (Control, and 2 >>>>>> patient groups). There are six different type of races that 3 groups belong >>>>>> to + gender. The 2 patient groups themselves have 2 subdivisions between >>>>>> them (SubGroup1 and SubGroup2). There are additional covariates of age, >>>>>> education, MoCA, disease score 1, disease score2, disease score 3, and ICV. >>>>>> >>>>>> I have constructed the following design matrix and contrast matrix >>>>>> and will appreciate if somebody could comment if this is right. >>>>>> >>>>>> *Design Matrix:* >>>>>> EV1: Intercept >>>>>> EV2: Controls/Group1 = -1/+1; Group2=0; >>>>>> EV3: Controls/Group2 = -1/+1; Group1 = 0 >>>>>> EV4: Male/Female = 1/-1 >>>>>> EV5: RaceA/RaceB = -1/+1; Race C through F = 0; >>>>>> EV6: RaceA/RaceC = -1/+1; All other races 0 >>>>>> EV7: RaceA/RaceD = -1/+1; All other races 0 >>>>>> EV8: RaceA/RaceE = -1/+1; All other races 0 >>>>>> EV9: RaceA/RaceF = -1/+1; All other races 0 >>>>>> EV10: Patient Subgroup1/Patient SubGroup 2 = -1/+1; Control =0 >>>>>> EV11: EV2*EV5 >>>>>> EV12: EV2*EV6 >>>>>> EV12: EV2*EV7 >>>>>> EV13: EV2*EV8 >>>>>> EV14: EV2*EV9 >>>>>> EV15: EV3*EV5 >>>>>> EV16: EV3*EV6 >>>>>> EV17: EV4*EV7 >>>>>> EV18: EV3*EV8 >>>>>> EV19: EV3*EV9 >>>>>> EV20: Age >>>>>> EV21: education >>>>>> EV22: EV2*EV23 >>>>>> EV23: EV3*EV23 >>>>>> EV24: MoCA for Controls; 0 for other group >>>>>> EV25: MoCA for Grp1; 0 for other group >>>>>> EV26: MoCA for Grp2; 0 for other group >>>>>> EV27: disease score1 for Controls; 0 for other group >>>>>> EV28: disease score1 for Grp1; 0 for other group >>>>>> EV29: disease score1 for Grp2; 0 for other group >>>>>> EV30: disease score2 for Controls; 0 for other group >>>>>> EV31: disease score2 for Grp1; 0 for other group >>>>>> EV32: disease score2 for Grp2; 0 for other group >>>>>> EV33: disease score3 for Controls; 0 for other group >>>>>> EV34: disease score3 for Grp1; 0 for other group >>>>>> EV35: disease score3 for Grp2; 0 for other group >>>>>> EV36: ICV >>>>>> >>>>>> >>>>> On a quick skim this seems right. However, you may want to split the >>>>> patient subgroups (EV10) into two EVs, one for each patient group. >>>>> >>>>> Another thing is that, in seeing the whole thing, it seems more >>>>> logical and easier to construct the contrasts if the intercept were dropped >>>>> and the 3 groups (controls, patients 1, patients 2) had each its own EV >>>>> (coded as 0 and 1). The contrasts for the group comparisons can then be >>>>> simple comparisons as [1 -1 0 0 ...] and so on. >>>>> >>>>> >>>>>> *Contrast Matrix:* >>>>>> >>>>>> a) Test if there are any differences between the groups after >>>>>> regressing out other effects >>>>>> >>>>>> Grp1>Con : 0,2,1,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> Grp1<Con : 0,-2,-1,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> Grp2>Con : 0,1,2,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> Grp2<Con : 0,-1,-2,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> Grp1>Grp2 : ,0,1,-1,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> Grp1<Grp2 : 0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> >>>>> >>>>> Looks right. >>>>> >>>>> >>>>>> >>>>>> b) Test if there are any differences due to education between the >>>>>> groups after regressing out other effects >>>>>> >>>>>> education Grp1>Con : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> education Grp1<Con : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> education Grp2>Con : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> education Grp2<Con : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,-1,-2,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> education Grp1>Grp2 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> education Grp1>Grp2 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> >>>>> >>>>> Looks right, but education by group interaction could have been coded >>>>> in the same manner as MoCA and the disease scores (as below). >>>>> >>>>> >>>>>> >>>>>> >>>>>> c) Test if there are is any association between MoCA within group >>>>>> >>>>>> MoCA Con >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> MoCA Con<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0,0 >>>>>> MoCA Grp1 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0 >>>>>> MoCA Grp1 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0,0 >>>>>> MoCA Grp2 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0 >>>>>> MoCA Grp2 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0,0,0,0 >>>>>> >>>>>> d) Test if there are is any association between disease score 1 >>>>>> within group >>>>>> >>>>>> Disease Score1 Con : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0 >>>>>> Disease Score1 Con<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0,0,0 >>>>>> Disease Score1 Grp1 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0 >>>>>> Disease Score1 Grp1<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0,0 >>>>>> Disease Score1 Grp2 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0 >>>>>> Disease Score1 Grp2<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0,0 >>>>>> >>>>>> e) Test if there are is any association between disease score2 >>>>>> within group >>>>>> Disease Score2 Con >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0 >>>>>> Disease Score2 Con<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0,0 >>>>>> Disease Score2 Grp1 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0 >>>>>> Disease Score2 Grp1<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0,0 >>>>>> Disease Score2 Grp2 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0 >>>>>> Disease Score2 Grp2<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0,0 >>>>>> >>>>>> e) Test if there are is any association between disease score2 >>>>>> within group >>>>>> Disease Score3 Con >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0 >>>>>> Disease Score3 Con<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0,0 >>>>>> Disease Score3 Grp1 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0 >>>>>> Disease Score3 Grp1<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0,0 >>>>>> Disease Score3 Grp2 >0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0 >>>>>> Disease Score3 Grp2<0 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>>>>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,0 >>>>>> >>>>>> f) How to test if there are any differences due to race between the >>>>>> groups after regressing out other effects >>>>>> >>>>> >>>>> Create one t-test for each of the EVs that test the race pairs (so, >>>>> one contrast for each of EV5 through EV9), then an F-test that encompasses >>>>> all these. This will test for any effect on any direction. >>>>> >>>>> >>>>>> >>>>>> >>>>>> *Questions:* >>>>>> >>>>>> 1) Does the design matrix and contrast matrix makes sense? There are >>>>>> in total 16 controls, 40 grp1, and 140 grp2 subjects? >>>>>> >>>>> >>>>> Yes, although, as indicated above, it could be made simpler (or less >>>>> error prone) if in this case the intercept is dropped and the 3 groups >>>>> coded separately. >>>>> >>>>> >>>>>> >>>>>> 2) This is my call to PALM. Is the call correct? >>>>>> >>>>>> palm -i bh.thickness.mgz -i bh.area.mgz -i bh.volume.mgz -i >>>>>> bh.cbf.mgz -d design.mat -t design.con -o bh.results -n 1000 -corrcon >>>>>> -corrmod -approx tail -nouncorrected -s bh.white -T -tfce2D -logp >>>>>> >>>>> >>>>> Yes, looks right. >>>>> >>>>> >>>>>> >>>>>> 3) How to test if there are any differences due to race between the >>>>>> groups after regressing out other effects? -- Contrast matrix? Can I use an >>>>>> f test here? If yes, how should I pass the argument into PALM call above? >>>>>> >>>>> >>>>> Yes, as indicated above. To pass the F-test use the option -f, just as >>>>> you would in randomise. >>>>> >>>>> >>>>>> >>>>>> 4) With so many contrasts and using -corcon option, I am going to >>>>>> lose a lot of power? Can the contrast matrix be simplified to test what I >>>>>> want to test? >>>>>> >>>>> >>>>> Yes, you can remove beforehand hypotheses or tests that are not >>>>> relevant or meaningful, although in this case it seems all of them are >>>>> plausible and presumably could be investigated. >>>>> >>>>> >>>>>> >>>>>> 5) How do I get FDR corrected p-value for the call to PALM above? >>>>>> >>>>> >>>>> Add the option -fdr. >>>>> >>>>> >>>>>> >>>>>> 6) Since the intercept is present in the model, my understanding is I >>>>>> don't have to demean the regressors in the design matrix, Is that right? >>>>>> >>>>> >>>>> Yes. And if you drop the intercept as indicated above, replacing it >>>>> (and the two other group EVs) for a new set of 3 EVs, the intercept will >>>>> still be present, albeit split across the 3 regressors, such that demeaning >>>>> is still not necessary. >>>>> >>>>> Hope this helps. >>>>> >>>>> All the best, >>>>> >>>>> Anderson >>>>> >>>>> >>>>> >>>>>> >>>>>> Thank you for any response. I will greatly appreciate it. >>>>>> >>>>>> Regards and a Happy new year! >>>>>> >>>>>> -- VM >>>>>> >>>>>> >>>>> >>>>> >>>> >> >