From fc02942eec173eac5844db01396cbaafe72303ea Mon Sep 17 00:00:00 2001 From: Christian Beckmann <c.beckmann@donders.ru.nl> Date: Tue, 7 Jul 2009 11:18:03 +0000 Subject: [PATCH] more modifications --- fsl_glm.cc | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/fsl_glm.cc b/fsl_glm.cc index c4f1bea..9a5b54e 100644 --- a/fsl_glm.cc +++ b/fsl_glm.cc @@ -26,7 +26,7 @@ using namespace std; 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"); + string(" or 3D/4D images"); string examples="fsl_glm -i <input> -d <design> -o <output> [options]"; //Command line Options { @@ -35,10 +35,10 @@ using namespace std; true, requires_argument); Option<string> fnout(string("-o,--out"), string(""), string("output file name for GLM parameter estimates (GLM betas)"), - true, requires_argument); + false, requires_argument); Option<string> fndesign(string("-d,--design"), string(""), string("file name of the GLM design matrix (time courses or spatial maps)"), - true, requires_argument); + false, requires_argument); Option<string> fnmask(string("-m,--mask"), string(""), string("mask image file name if input is image"), false, requires_argument); @@ -66,6 +66,9 @@ using namespace std; Option<int> help(string("-h,--help"), 0, string("display this help text"), false,no_argument); + Option<bool> debug(string("--debug"), FALSE, + string("display debug information"), + false,no_argument,false); // Output options Option<string> outcope(string("--out_cope"),string(""), string("output file name for COPEs (either as text file or image)"), @@ -103,7 +106,7 @@ using namespace std; /* } */ -//Globals { +//Globals Melodic::basicGLM glm; int voxels = 0; Matrix data; @@ -112,9 +115,8 @@ using namespace std; Matrix fcontrasts; Matrix meanR; RowVector vnscales; - volume<float> mask; /* -} -*/ + volume<float> mask; + //////////////////////////////////////////////////////////////////////////// // Local functions @@ -159,22 +161,21 @@ int setup(){ return 1; }; }else{ - mask = tmpdata[0]*0.0+1.0; - } - + mask=tmpdata[0]*0.0+1.0; + data=tmpdata.matrix(mask); + Melodic::update_mask(mask,data); + } data = tmpdata.matrix(mask); voxels = data.Ncols(); + + if(perfvn.value()){ + data = remmean(data,1); + 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()); @@ -188,11 +189,16 @@ int setup(){ design = read_ascii_matrix(fndesign.value()); } + if(perf_demean.value()) + data = remmean(data,1); + if(normdat.value()) + data = SP(data,ones(data.Nrows(),1)*pow(stdev(data,1),-1)); + meanR=mean(data,1); - if(perf_demean.value()){ + if(perf_demean.value()) + design = remmean(design,1); if(normdes.value()) design = SP(design,ones(design.Nrows(),1)*pow(stdev(design,1),-1)); - if(fncontrasts.value()>""){//read contrast contrasts = read_ascii_matrix(fncontrasts.value()); if(!(contrasts.Ncols()==design.Ncols())){ -- GitLab