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'
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 = {}
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")