8.1.1. Data Grabbers#
Provide imports for datagrabber sub-package.
- class junifer.datagrabber.BaseDataGrabber(types, datadir)#
Abstract base class for datagrabber.
For every interface that is required, one needs to provide a concrete implementation of this abstract class.
- Parameters:
- types
listofstr The types of data to be grabbed.
- datadir
strorpathlib.Path The directory where the data is / will be stored.
- types
- Attributes:
datadirpathlib.PathGet data directory path.
- property datadir: Path#
Get data directory path.
- Returns:
pathlib.PathPath to the data directory. Can be overridden by subclasses.
- abstract get_element_keys()#
Get element keys.
For each item in the
elementtuple passed to__getitem__(), this method returns the corresponding key(s).- Returns:
strThe element keys.
- abstract get_elements()#
Get elements.
- Returns:
listList of elements that can be grabbed. The elements can be strings, tuples or any object that will be then used as a key to index the datagrabber.
- abstract get_item(**element)#
Get the specified item from the dataset.
- class junifer.datagrabber.DataladAOMICID1000(datadir=None)#
Concrete implementation for pattern-based data fetching of AOMICID1000.
- class junifer.datagrabber.DataladAOMICPIOP1(datadir=None, tasks=None)#
Concrete implementation for pattern-based data fetching of AOMICPIOP1.
- Parameters:
- datadir
strorPath, optional The directory where the datalad dataset will be cloned. If None, the datalad dataset will be cloned into a temporary directory (default None).
- tasks{“restingstate”, “anticipation”, “emomatching”, “faces”, “gstroop”, “workingmemory”} or
listof the options, optional AOMIC PIOP1 task sessions. If None, all available task sessions are selected (default None).
- datadir
- get_elements()#
Implement fetching list of subjects in the dataset.
- class junifer.datagrabber.DataladAOMICPIOP2(datadir=None, tasks=None)#
Concrete implementation for pattern-based data fetching of AOMICPIOP2.
- Parameters:
- datadir
strorPath, optional The directory where the datalad dataset will be cloned. If None, the datalad dataset will be cloned into a temporary directory (default None).
- tasks{“restingstate”, “stopsignal”, “emomatching”, “workingmemory”} or
listof the options, optional AOMIC PIOP2 task sessions. If None, all available task sessions are selected (default None).
- datadir
- class junifer.datagrabber.DataladDataGrabber(rootdir='.', datadir=None, uri=None, **kwargs)#
Abstract base class for data fetching via Datalad.
Defines a Data Grabber that gets data from a datalad sibling.
- Parameters:
- rootdir
strorPath, optional The path within the datalad dataset to the root directory (default “.”).
- datadir
strorPath, optional That directory where the datalad dataset will be cloned. If None, the datalad dataset will be cloned into a temporary directory (default None).
- uri
str, optional URI of the datalad sibling (default None).
- **kwargs
Keyword arguments passed to superclass.
- rootdir
See also
BaseDataGrabberFor the abstract base class of any datagrabber.
Notes
By itself, this class is still abstract as the __getitem__ method relies on the parent class BaseDataGrabber.__getitem__ which is not yet implemented. This class is intended to be used as a superclass of a class with multiple inheritance.
Methods
install:
Installs (clones) the datalad dataset into the datadir. This method is called automatically when the datagrabber is used within a context.
remove:
Removes the datalad dataset from the datadir. This method is called automatically when the datagrabber is used within a context.
- cleanup()#
Cleanup the datalad dataset.
- install()#
Install the datalad dataset into the datadir.
- Raises:
ValueErrorIf the dataset is already installed but with a different ID.
- class junifer.datagrabber.DataladHCP1200(datadir=None, tasks=None, phase_encodings=None)#
Concrete implementation for datalad-based data fetching of HCP1200.
- Parameters:
- datadir
strorPath, optional The directory where the datalad dataset will be cloned. If None, the datalad dataset will be cloned into a temporary directory (default None).
- tasks{“REST1”, “REST2”, “SOCIAL”, “WM”, “RELATIONAL”, “EMOTION”, “LANGUAGE”, “GAMBLING”, “MOTOR”} or
listof the options, optional HCP task sessions. If None, all available task sessions are selected (default None).
- phase_encodings{“LR”, “RL”} or
listof the options, optional HCP phase encoding directions. If None, both will be used (default None).
- datadir
- class junifer.datagrabber.HCP1200(datadir, tasks=None, phase_encodings=None, **kwargs)#
Concrete implementation for pattern-based data fetching of HCP1200.
- Parameters:
- datadir
strorPath, optional The directory where the datalad dataset will be cloned.
- tasks{“REST1”, “REST2”, “SOCIAL”, “WM”, “RELATIONAL”, “EMOTION”, “LANGUAGE”, “GAMBLING”, “MOTOR”} or
listof the options, optional HCP task sessions. If None, all available task sessions are selected (default None).
- phase_encodings{“LR”, “RL”} or
listof the options, optional HCP phase encoding directions. If None, both will be used (default None).
- **kwargs
Keyword arguments passed to superclass.
- datadir
- get_elements()#
Implement fetching list of elements in the dataset.
- Returns:
listThe list of elements in the dataset.
- get_item(subject, task, phase_encoding)#
Index one element in the dataset.
- class junifer.datagrabber.MultipleDataGrabber(datagrabbers, **kwargs)#
Data Grabber class for data fetching from multiple sources.
Defines a Data Grabber which can be used to fetch data from multiple datagrabbers.
- Parameters:
- datagrabbers
listof datagrabber-like objects The datagrabbers to use to fetch data using.
- **kwargs
Keyword arguments passed to superclass.
- datagrabbers
- get_element_keys()#
Get element keys.
For each item in the
elementtuple passed to__getitem__(), this method returns the corresponding key(s).
- get_elements()#
Get elements.
- Returns:
listThe list of elements that can be grabbed in the dataset. It corresponds to the elements that are present in all the related datagrabbers.
- class junifer.datagrabber.PatternDataGrabber(types, patterns, replacements, datadir)#
Concrete implementation for data grabbing using patterns.
Implements a Data Grabber that understands patterns to grab data.
- Parameters:
- types
listofstr The types of data to be grabbed (default None).
- patterns
dict Patterns for each type of data as a dictionary. The keys are the types and the values are the patterns. Each occurrence of the string {subject} in the pattern will be replaced by the indexed element.
- replacements
listofstr Replacements in the patterns for each item in the “element” tuple.
- datadir
strorpathlib.Path The directory where the data is / will be stored.
- types
- get_element_keys()#
Get element keys.
For each item in the “element” tuple, this functions returns the corresponding key, that is, the
replacementsof patterns defined in the constructor.
- get_elements()#
Implement fetching list of elements in the dataset.
It will use regex to search for “replacements” in the “patterns” and return the intersection of the results for each type i.e., build a list of elements that have all the required types.
- Returns:
listThe list of elements that can be grabbed in the dataset.
- get_item(**element)#
Implement single element indexing in the database.
This method constructs a real path to the requested item’s data, by replacing the
patternswith actual values passed via**element.
- class junifer.datagrabber.PatternDataladDataGrabber(types, patterns, **kwargs)#
Base class for pattern-based data fetching via Datalad.
Defines a DataGrabber that gets data from a datalad sibling, interpreting patterns.
- Parameters:
- types
listofstr The types of data to be grabbed.
- patterns
dict, optional Patterns for each type of data as a dictionary. The keys are the types and the values are the patterns. Each occurrence of the string {subject} in the pattern will be replaced by the indexed element (default None).
- **kwargs
Keyword arguments passed to superclass.
- types
See also
DataladDataGrabberBase class for data fetching via Datalad.
PatternDataGrabberBase class for pattern-based data fetching.