Exemple #1
0
def test_read_activity_data():
    masked_data1 = io.read_activity_data(dir, extension, mask_file)
    raw_data = io.read_activity_data(dir, extension)
    mask_img = nib.load(mask_file)
    mask = mask_img.get_data().astype(np.bool)
    masked_data2 = []
    for data in raw_data:
        masked_data2.append(data[mask])
    assert len(masked_data1) == len(masked_data2), \
        'numbers of subjects do not match in test_read_activity_data'
    for idx in range(len(masked_data1)):
        assert np.allclose(masked_data1[idx], masked_data2[idx]), \
            'masked data do not match in test_read_activity_data'
Exemple #2
0
def test_read_activity_data():
    masked_data1 = io.read_activity_data(dir, extension, mask_file)
    raw_data = io.read_activity_data(dir, extension)
    mask_img = nib.load(mask_file)
    mask = mask_img.get_data().astype(np.bool)
    masked_data2 = []
    for data in raw_data:
        masked_data2.append(data[mask])
    assert len(masked_data1) == len(masked_data2), \
        'numbers of subjects do not match in test_read_activity_data'
    for idx in range(len(masked_data1)):
        assert np.allclose(masked_data1[idx], masked_data2[idx]), \
            'masked data do not match in test_read_activity_data'
Exemple #3
0
import scipy.io

format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
# if want to output log to a file instead of outputting log to the console,
# replace "stream=sys.stdout" with "filename='fcma.log'"
logging.basicConfig(level=logging.INFO, format=format, stream=sys.stdout)
logger = logging.getLogger(__name__)

# python corr_comp.py face_scene bet.nii.gz face_scene/prefrontal_top_mask.nii.gz face_scene/fs_epoch_labels.npy
if __name__ == '__main__':
    data_dir = sys.argv[1]
    extension = sys.argv[2]
    mask_file = sys.argv[3]
    epoch_file = sys.argv[4]

    raw_data = io.read_activity_data(data_dir, extension, mask_file)
    epoch_list = np.load(epoch_file)
    epoch_info = io.generate_epochs_info(epoch_list)

    for idx, epoch in enumerate(epoch_info):
        label = epoch[0]
        sid = epoch[1]
        start = epoch[2]
        end = epoch[3]
        mat = raw_data[sid][:, start:end]
        mat = np.ascontiguousarray(mat, dtype=np.float32)
        logger.info(
            'start to compute correlation for subject %d epoch %d with label %d'
            % (sid, idx, label))
        corr = compute_correlation(mat, mat)
        mdict = {}
Exemple #4
0
import scipy.io

format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
# if want to output log to a file instead of outputting log to the console,
# replace "stream=sys.stdout" with "filename='fcma.log'"
logging.basicConfig(level=logging.INFO, format=format, stream=sys.stdout)
logger = logging.getLogger(__name__)

# python corr_comp.py face_scene bet.nii.gz face_scene/prefrontal_top_mask.nii.gz face_scene/fs_epoch_labels.npy
if __name__ == '__main__':
    data_dir = sys.argv[1]
    extension = sys.argv[2]
    mask_file = sys.argv[3]
    epoch_file = sys.argv[4]

    raw_data = io.read_activity_data(data_dir, extension, mask_file)
    epoch_list = np.load(epoch_file)
    epoch_info = io.generate_epochs_info(epoch_list)

    for idx, epoch in enumerate(epoch_info):
        label = epoch[0]
        sid = epoch[1]
        start = epoch[2]
        end = epoch[3]
        mat = raw_data[sid][:, start:end]
        mat = np.ascontiguousarray(mat, dtype=np.float32)
        logger.info(
            'start to compute correlation for subject %d epoch %d with label %d' %
            (sid, idx, label)
        )
        corr = compute_correlation(mat, mat)
if __name__ == '__main__':
    if MPI.COMM_WORLD.Get_rank() == 0:
        logger.info('programming starts in %d process(es)' %
                    MPI.COMM_WORLD.Get_size())
    data_dir = sys.argv[1]
    extension = sys.argv[2]
    mask_file = sys.argv[3]
    epoch_file = sys.argv[4]

    raw_data = []
    # all MPI processes read the mask; the mask file is small
    mask_img = nib.load(mask_file)
    mask = mask_img.get_data().astype(np.bool)
    epoch_info = None
    if MPI.COMM_WORLD.Get_rank() == 0:
        raw_data = io.read_activity_data(data_dir, extension)
        epoch_list = np.load(epoch_file)
        epoch_info = io.generate_epochs_info(epoch_list)
        # the following line is an example to leaving a subject out
        #epoch_info = [x for x in epoch_info if x[1] != 0]
    num_subjs = int(sys.argv[5])
    # create a Searchlight object
    sl = Searchlight(sl_rad=1)
    mvs = MVPAVoxelSelector(raw_data, mask, epoch_info, num_subjs, sl)
    clf = svm.SVC(kernel='linear', shrinking=False, C=1)
    # only rank 0 has meaningful return values
    score_volume, results = mvs.run(clf)
    # this output is just for result checking
    if MPI.COMM_WORLD.Get_rank() == 0:
        score_volume = np.nan_to_num(score_volume.astype(np.float))
        io.write_nifti_file(score_volume, mask_img.affine,
"""
if __name__ == "__main__":
    if MPI.COMM_WORLD.Get_rank() == 0:
        logger.info("programming starts in %d process(es)" % MPI.COMM_WORLD.Get_size())
    data_dir = sys.argv[1]
    extension = sys.argv[2]
    mask_file = sys.argv[3]
    epoch_file = sys.argv[4]

    raw_data = []
    # all MPI processes read the mask; the mask file is small
    mask_img = nib.load(mask_file)
    mask = mask_img.get_data().astype(np.bool)
    epoch_info = None
    if MPI.COMM_WORLD.Get_rank() == 0:
        raw_data = io.read_activity_data(data_dir, extension)
        epoch_list = np.load(epoch_file)
        epoch_info = io.generate_epochs_info(epoch_list)
        # the following line is an example to leaving a subject out
        # epoch_info = [x for x in epoch_info if x[1] != 0]
    num_subjs = int(sys.argv[5])
    # create a Searchlight object
    sl = Searchlight(sl_rad=1)
    mvs = MVPAVoxelSelector(raw_data, mask, epoch_info, num_subjs, sl)
    clf = svm.SVC(kernel="linear", shrinking=False, C=1)
    # only rank 0 has meaningful return values
    score_volume, results = mvs.run(clf)
    # this output is just for result checking
    if MPI.COMM_WORLD.Get_rank() == 0:
        score_volume = np.nan_to_num(score_volume.astype(np.float))
        io.write_nifti_file(score_volume, mask_img.affine, "result_score.nii.gz")