Exemple #1
0
def test_mask_files():
    with InTemporaryDirectory():
        # Make a 4D file from the anatomical example
        img = nii.load(anatfile)
        arr = img.get_data()
        a2 = np.zeros(arr.shape + (2,))
        a2[:, :, :, 0] = arr
        a2[:, :, :, 1] = arr
        img = nii.Nifti1Image(a2, np.eye(4))
        a_fname = "fourd_anat.nii"
        nii.save(img, a_fname)
        # check 4D mask
        msk1 = nnm.compute_mask_files(a_fname)
        # and mask from identical list of 3D files
        msk2 = nnm.compute_mask_files([anatfile, anatfile])
        yield assert_array_equal, msk1, msk2
Exemple #2
0
# Example usage
# python compute_mask.py swa4D.nii.gz mask.nii.gz
# python compute_mask.py swa*.nii mask.nii.gz

from nipy.neurospin.utils.mask import compute_mask_files
import sys

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print """Usage : python compute_mask [ -s copyfilename ] inputfilename(s) outputfilename
    inputfilename can be either a single (4D) file or a list of (3D) files
    -s copyfilename : also save a copy of the orginal data as a single 4D file named copyfilename

    # Example :
    python compute_mask.py swa4D.nii.gz mask.nii.gz
    python compute_mask.py swa*.nii mask.nii.gz
    python compute_mask.py -s swaCopy4D.nii.gz swa*.nii ../masks/mask.nii.gz"""
        sys.exit()
    copyIn4Dfilename = None
    if '-s' in sys.argv:
        i = sys.argv.index('-s')
        sys.argv.pop(i)
        copyIn4Dfilename = sys.argv.pop(i)
    if len(sys.argv) == 3:
        inputFilename = sys.argv[1]
    else:
        inputFilename = sorted(sys.argv[1:-1])
    outputFilename = sys.argv[-1]
    compute_mask_files(inputFilename, outputFilename, copy_filename = copyIn4Dfilename)
        misc["tasks"] = Conditions
        misc["mask_url"] = paths["mask"]
        misc.write()

        # step 2. Create one design matrix for each session
        design_matrices={}
        for sess in Sessions:
            design_matrices[sess] = glm_tools.design_matrix(
                paths['misc'], paths['dmtx'][sess], sess, paths['paradigm'],
                frametimes, hrf_model=hrf_model, drift_model=drift_model,
                hfcut=hfcut, model=model_id)

        # step 3. Compute the Mask
        # fixme : it should be possible to provide a pre-computed mask
        print "Computing the Mask"
        mask_array = compute_mask_files(paths['fmri'].values()[0][0],
                                        paths['mask'], False, infTh, supTh)
        
        # step 4. Create Contrast Files
        print "Creating Contrasts"
        clist = contrast_tools.ContrastList(misc=misc)
        d = clist.dic
        d["SStSSp_minus_DStDSp"] = d["SSt-SSp"] - d["DSt-DSp"]
        d["DStDSp_minus_SStSSp"] = d["DSt-DSp"] - d["SSt-SSp"]
        d["DSt_minus_SSt"] = d["DSt-SSp"] + d["DSt-DSp"]\
                             - d["SSt-SSp"] - d["SSt-DSp"]
        d["DSp_minus_SSp"] = d["DSt-DSp"] - d["DSt-SSp"]\
                             - d["SSt-SSp"] + d["SSt-DSp"]
        d["DSt_minus_SSt_for_DSp"] = d["DSt-DSp"] - d["SSt-DSp"]
        d["DSp_minus_SSp_for_DSt"] = d["DSt-DSp"] - d["DSt-SSp"]
        if d.has_key("FirstSt"):
            d["Deactivation"] = d["FirstSt"] - d["SSt-SSp"]\
paradigm = dm.load_protocol_from_csv_file(paradigm_file, session=0)

design_matrix = dm.DesignMatrix( frametimes, paradigm, hrf_model=hrf_model,
                                 drift_model=drift_model, hfcut=hfcut,
                                 cond_ids= conditions)

design_matrix.show()
# design_matrix.save(...)

########################################
# Mask the data
########################################

mask_path = op.join(swd, 'mask.nii') 
mask_array = compute_mask_files( data_path, mask_path, False, 0.4, 0.9)

########################################
# Perform a GLM analysis
########################################

fmri_image = load(data_path)
Y = fmri_image.get_data()[mask_array]
model = "ar1"
method = "kalman"
my_glm = nipy.neurospin.glm.glm()
glm = my_glm.fit(Y.T, design_matrix.matrix,
                 method="kalman", model="ar1")

#########################################
# Specify the contrasts
Exemple #5
0
def ComputeMask(fmriFiles, outputFile, infT=0.4, supT=0.9):
    """
    Perform the mask computation, see the api of  compute_mask_files
    """ 
    compute_mask_files( fmriFiles, outputFile, False, infT, supT, cc=1)
            design_matrices[sess] = glm_tools.design_matrix(
                paths["misc"],
                paths["dmtx"][sess],
                sess,
                paths["paradigm"],
                frametimes,
                hrf_model=hrf_model,
                drift_model=drift_model,
                hfcut=hfcut,
                model=model_id,
            )

        # step 3. Compute the Mask
        # fixme : it should be possible to provide a pre-computed mask
        print "Computing the Mask"
        mask_array = compute_mask_files(paths["fmri"].values()[0][0], paths["mask"], True, infTh, supTh)

        # step 4. Creating functional contrasts
        print "Creating Contrasts"
        clist = contrast_tools.ContrastList(misc=ConfigObj(paths["misc"]), model=model_id)
        generate_localizer_contrasts(clist)
        contrast = clist.save_dic(paths["contrast_file"])
        CompletePaths = glm_tools.generate_brainvisa_ouput_paths(paths["contrasts"], contrast)

        # step 5. Fit the  glm for each session
        glms = {}
        for sess in Sessions:
            print "Fitting GLM for session : %s" % sess
            glms[sess] = glm_tools.glm_fit(
                paths["fmri"][sess],
                design_matrices[sess],