From 04635c65da66f82c5a5f011eeca2668a6753c38d Mon Sep 17 00:00:00 2001 From: Christian Beckmann <c.beckmann@donders.ru.nl> Date: Mon, 6 Jul 2009 22:20:33 +0000 Subject: [PATCH] added full data normalisation --- fsl_glm.cc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/fsl_glm.cc b/fsl_glm.cc index fc2f1b9..c4f1bea 100644 --- a/fsl_glm.cc +++ b/fsl_glm.cc @@ -22,8 +22,8 @@ using namespace std; // The two strings below specify the title and example usage that is // printed out as the help or usage message - string title=string("fsl_glm (Version 1.05)")+ - string("\nCopyright(c) 2004-2008, University of Oxford (Christian F. Beckmann)\n")+ + string title=string("fsl_glm (Version 1.1)")+ + string("\nCopyright(c) 2004-2009, University of Oxford (Christian F. Beckmann)\n")+ string(" \n Simple GLM usign ordinary least-squares (OLS) regression on\n")+ string(" time courses and/or 3D/4D imges against time courses \n")+ string(" or 3D/4D images\n\n"); @@ -54,6 +54,9 @@ using namespace std; Option<bool> normdes(string("--des_norm"),FALSE, string("switch on normalisation of the design matrix columns to unit std. deviation"), false, no_argument); + Option<bool> normdat(string("--dat_norm"),FALSE, + string("switch on normalisation of the data time series to unit std. deviation"), + false, no_argument); Option<bool> perfvn(string("--vn"),FALSE, string(" perform MELODIC variance-normalisation on data"), false, no_argument); @@ -161,14 +164,17 @@ int setup(){ data = tmpdata.matrix(mask); voxels = data.Ncols(); - if(perf_demean.value()) - data = remmean(data,1); - if(perfvn.value()) - vnscales = Melodic::varnorm(data); } else data = read_ascii_matrix(fnin.value()); + if(perf_demean.value()) + data = remmean(data,1); + if(perfvn.value()) + vnscales = Melodic::varnorm(data); + if(normdat.value()) + data = SP(data,ones(data.Nrows(),1)*pow(stdev(data,1),-1)); + if(fsl_imageexists(fndesign.value())){//read design volume4D<float> tmpdata; read_volume4D(tmpdata,fndesign.value()); @@ -183,11 +189,7 @@ int setup(){ } meanR=mean(data,1); - if(perf_demean.value()){ - data = remmean(data,1); - design = remmean(design,1); - } - + if(perf_demean.value()){ if(normdes.value()) design = SP(design,ones(design.Nrows(),1)*pow(stdev(design,1),-1)); @@ -256,6 +258,7 @@ int main(int argc,char *argv[]){ options.add(fnftest); options.add(dofset); options.add(normdes); + options.add(normdat); options.add(perfvn); options.add(perf_demean); options.add(help); -- GitLab