Fork me on GitHub

pyhrf.core module

class pyhrf.core.AttrClass(**kwargs)

Bases: object

Base class to display attributes.

class pyhrf.core.Condition(**kwargs)

Bases: pyhrf.core.AttrClass

Represents an activation condition

FMRISessionSimulationData(onsets={'audio': array([ 15. , 20.7, 29.7, 35.4, 44.7, 48. , 83.4, 89.7,
108. , 119.4, 135. , 137.7, 146.7, 173.7, 191.7, 236.7,
251.7, 284.4, 293.4, 296.7]), 'video': array([ 0. , 2.4, 8.7, 33. , 39. , 41.7, 56.4, 59.7,
75. , 96. , 122.7, 125.4, 131.4, 140.4, 149.4, 153. ,
156. , 159. , 164.4, 167.7, 176.7, 188.4, 195. , 198. ,
201. , 203.7, 207. , 210. , 218.7, 221.4, 224.7, 234. ,
246. , 248.4, 260.4, 264. , 266.7, 269.7, 278.4, 288. ])}, durations={'audio': array([], dtype=float64), 'video': array([], dtype=float64)}, simulation_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/simu.pck')

Bases: pyhrf.xmlio.Initable

FMRISessionSimulationData.to_dict()
FMRISessionSurfacicData(onsets={'audio': array([ 15. , 20.7, 29.7, 35.4, 44.7, 48. , 83.4, 89.7,
108. , 119.4, 135. , 137.7, 146.7, 173.7, 191.7, 236.7,
251.7, 284.4, 293.4, 296.7]), 'video': array([ 0. , 2.4, 8.7, 33. , 39. , 41.7, 56.4, 59.7,
75. , 96. , 122.7, 125.4, 131.4, 140.4, 149.4, 153. ,
156. , 159. , 164.4, 167.7, 176.7, 188.4, 195. , 198. ,
201. , 203.7, 207. , 210. , 218.7, 221.4, 224.7, 234. ,
246. , 248.4, 260.4, 264. , 266.7, 269.7, 278.4, 288. ])}, durations={'audio': array([], dtype=float64), 'video': array([], dtype=float64)}, bold_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/real_data_surf_tiny_bold.gii')

Bases: pyhrf.xmlio.Initable

FMRISessionSurfacicData.to_dict()
FMRISessionVolumicData(onsets={'audio': array([ 15. , 20.7, 29.7, 35.4, 44.7, 48. , 83.4, 89.7,
108. , 119.4, 135. , 137.7, 146.7, 173.7, 191.7, 236.7,
251.7, 284.4, 293.4, 296.7]), 'video': array([ 0. , 2.4, 8.7, 33. , 39. , 41.7, 56.4, 59.7,
75. , 96. , 122.7, 125.4, 131.4, 140.4, 149.4, 153. ,
156. , 159. , 164.4, 167.7, 176.7, 188.4, 195. , 198. ,
201. , 203.7, 207. , 210. , 218.7, 221.4, 224.7, 234. ,
246. , 248.4, 260.4, 264. , 266.7, 269.7, 278.4, 288. ])}, durations={'audio': array([], dtype=float64), 'video': array([], dtype=float64)}, bold_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/subj0_bold_session0.nii.gz')

Bases: pyhrf.xmlio.Initable

FMRISessionVolumicData.parametersComments = {'bold_file': 'Data file containing the 3D+time BOLD signal (nifti format)', 'durations': 'Durations of experimental simtuli in seconds.\nIt has to consistent with the definition of onsets', 'onsets': 'Onsets of experimental simtuli in seconds. \nDictionnary mapping stimulus name to the actual list of onsets.'}
FMRISessionVolumicData.to_dict()
class pyhrf.core.FmriData(onsets, bold, tr, sessionsScans, roiMask, graphs=None, stimDurations=None, meta_obj=None, simulation=None, backgroundLabel=0, data_files=None, data_type=None, edge_lengths=None, mask_loaded_from_file=False, extra_data=None)

Bases: pyhrf.xmlio.Initable

onsets

a dictionary mapping a stimulus name to a list of session onsets. Each item of this list is a 1D numpy float array of onsets for a given session.

stimDurations

same as ‘onsets’ but stores durations of stimuli

roiMask

numpy int array of roi labels (0 stands for the background). Shape depends on the data form (3D volumic or 1D surfacic)

bold

either a 4D numpy float array with axes [sag,cor,ax,scan] and then spatial axes must have the same shape as roiMask, or a 2D numpy float array with axes [scan, position] and position axis must have the same length as the number of positions within roiMask (without background). Sessions are stacked in the scan axis

sessionsScans

a list of session indexes along scan axis.

tr

Time of repetition of the BOLD signal

simulation

if not None then it should be a list of simulation instance.

meta_obj

extra information associated to data

average(flag=True)
build_graphs(force=False)
compute_average()
discard_rois(roi_ids)
discard_small_rois(min_size)
classmethod from_simu_ui(sessions_data=None)
classmethod from_simulation_dict(simulation, mask=None)
classmethod from_surf_files(paradigm_csv_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/paradigm_loc_av.csv', bold_files=None, tr=2.4, mesh_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/real_data_surf_tiny_mesh.gii', mask_file=None)

Return FmriData representation from surf files

classmethod from_surf_ui(sessions_data=None, tr=2.4, mask_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/real_data_surf_tiny_parcellation.gii', mesh_file='/home/docs/checkouts/readthedocs.org/user_builds/pyhrf/envs/latest/lib/python2.7/site-packages/pyhrf-0.5.0-py2.7-linux-x86_64.egg/pyhrf/datafiles/real_data_surf_tiny_mesh.gii')

Convenient creation function intended to be used for XML I/O. ‘session_data’ is a list of FMRISessionVolumicData objects. ‘tr’ is the time of repetition. ‘mask_file’ is a path to a functional mask file.

This represents the following hierarchy:

- FMRIData:
   - list of session data:
       [ * data for session 1:
                - onsets for session 1,
                - durations for session 1,
                - fmri data file for session 1 (gii)
         * data for session 2:
                - onsets for session 2,
                - durations for session 2,
                - fmri data file for session 2 (gii)
       ],
   - time of repetition
   - mask file
   - mesh file
from_vol_files
from_vol_files_rel
from_vol_ui
getSummary(long=False)
get_condition_names()
get_data_files()
get_extra_data(label, default)
get_graph()
get_joined_durations()
get_joined_onsets()
get_nb_rois()

Return the number of parcels (background id is discarded)

get_nb_vox_in_mask()
get_roi_id()

In case of FMRI data containing only one ROI, return the id of this ROI. If data contains several ROIs then raise an exception

get_roi_mask()
keep_only_rois(roiIds)
parametersComments = {'mask_file': 'Input n-ary mask file (= parcellation). Only positive integers are allowed. \nAll zeros are treated as background positions.', 'sessions_data': 'List of data definition for all sessions', 'tr': 'repetition time in seconds'}
parametersToShow = ['tr', 'sessions_data', 'mask_file']
roiMask
roi_split(mask=None)
save(output_dir)

Save paradigm to output_dir/paradigm.csv, BOLD to output_dir/bold.nii, mask to output_dir/mask.nii #TODO: handle multi-session

Return: tuple of file names in this order: (paradigm, bold, mask)

set_extra_data(label, value)
store_mask_sparse(roiMask)
class pyhrf.core.FmriGroupData(list_subjects)

Bases: pyhrf.xmlio.Initable

Used for group level hemodynamic analysis Encapsulates FmriData objects for all subjects All subjects must habe the same number of ROIs

Inputs:
list_subjects: contains list of FmriData object for each subject
build_graphs(force=False)
getSummary(long=False)
get_roi_id()
roi_split()

Retrieve a list of FmriGroupData object, each containing the data for all subject, in one ROI

class pyhrf.core.Object

Bases: object

pyhrf.core.get_data_file_name(filename)

Return the path of a given filename.

pyhrf.core.get_roi_simulation(simu_sessions, mask, roi_id)

Extract the ROI from the given simulation dict. :param - simu: dictionnary of simulated quantities :type - simu: dict :param - mask: binary mask defining the spatial extent of the ROI :type - mask: np.ndarray :param - roi_id: the id of the roi to extract :type - roi_id: int

Returns:dict of roi-specific simulation items
pyhrf.core.get_src_doc_path()

Return the documentation path of pyhrf.

pyhrf.core.get_src_path()

Return the source path of pyhrf.

pyhrf.core.get_tmp_path(tag='pyhrf_')

Return a temporary path.

pyhrf.core.list_data_file_names()

List all the data filenames.

pyhrf.core.load_surf_bold_mask(bold_files, mesh_file, mask_file=None)
pyhrf.core.load_vol_bold_and_mask(bold_files, mask_file)
pyhrf.core.merge_fmri_sessions(fmri_data_sets)

fmri_data_sets: list of FmriData objects. Each FmriData object is assumed to contain only one session

pyhrf.core.merge_fmri_subjects(fmri_data_sets, roiMask, backgroundLabel=0)

fmri_data_sets: list of FmriData objects, for different subjects. In case of multisession data, merging of fmri data over sessions must be done for each subject before using this function. roiMask: multi_subject parcellation (nparray)