ibllib.pipes.dynamic_pipeline
Task pipeline creation from an acquisition description.
The principal function here is make_pipeline which reads an _ibl_experiment.description.yaml file and determines the set of tasks required to preprocess the session.
In the experiment description file there is a ‘tasks’ key that defines each task protocol and the
location of the raw data (i.e. task collection). The protocol subkey may contain an ‘extractors’
field that should contain a list of dynamic pipeline task class names for extracting the task data.
These must be subclasses of the ibllib.pipes.base_tasks.DynamicTask
class. If the
extractors key is absent or empty, the tasks are chosen based on the sync label and protocol name.
NB: The standard behvaiour extraction task classes (e.g.
ibllib.pipes.behaviour_tasks.ChoiceWorldTrialsBpod
and ibllib.pipes.behaviour_tasks.ChoiceWorldTrialsNidq
)
handle the clock synchronization, behaviour plots and QC. This is typically independent of the Bpod
trials extraction (i.e. extraction of trials data from the Bpod raw data, in Bpod time). The Bpod
trials extractor class is determined by the ibllib.io.extractors.base.protocol2extractor()
map. IBL protocols may be added to the ibllib.io.extractors.task_extractor_map.json file, while
non-IBL ones should be in projects.base.task_extractor_map.json file located in the personal
projects repo. The Bpod trials extractor class must be a subclass of the
ibllib.io.extractors.base.BaseBpodTrialsExtractor
class, and located in either the
personal projects repo or in ibllib.io.extractors.bpod_trials
module.
Functions
From a legacy session create a dictionary corresponding to the acquisition description. |
|
Return a list of pipeline trials extractor task objects for a given session. |
|
Creates a pipeline of extractor tasks from a session's experiment description file. |
|
- acquisition_description_legacy_session(session_path, save=False)[source]
From a legacy session create a dictionary corresponding to the acquisition description.
- Parameters:
session_path (str, pathlib.Path) – A path to a session to describe.
save (bool) – If true, saves the acquisition description file to _ibl_experiment.description.yaml.
- Returns:
The legacy acquisition description.
- Return type:
dict
- get_acquisition_description(protocol)[source]
” This is a set of example acquisition descriptions for experiments - choice_world_recording - choice_world_biased - choice_world_training - choice_world_habituation - choice_world_passive That are part of the IBL pipeline
- make_pipeline(session_path, **pkwargs)[source]
Creates a pipeline of extractor tasks from a session’s experiment description file.
- Parameters:
session_path (str, Path) – The absolute session path, i.e. ‘/path/to/subject/yyyy-mm-dd/nnn’.
pkwargs – Optional arguments passed to the ibllib.pipes.tasks.Pipeline constructor.
- Returns:
A task pipeline object.
- Return type:
- get_trials_tasks(session_path, one=None)[source]
Return a list of pipeline trials extractor task objects for a given session.
This function supports both legacy and dynamic pipeline sessions.
- Parameters:
session_path (str, pathlib.Path) – An absolute path to a session.
one (one.api.One) – An ONE instance.
- Returns:
A list of task objects for the provided session.
- Return type:
list of pipes.tasks.Task