aslprep.interfaces.bids module

Adapted interfaces from Niworkflows.

class BIDSDataGrabber(*args, **kwargs)[source]

Bases: SimpleInterface

Collect files from a BIDS directory structure.

Optional Inputs:
  • subject_data (a dictionary with keys which are a string and with values which are any value)

  • subject_id (a string)

Outputs:
  • asl (a list of items which are any value) – Output ASL images.

  • flair (a list of items which are any value) – Output FLAIR images.

  • fmap (a list of items which are any value) – Output fieldmaps.

  • out_dict (a dictionary with keys which are any value and with values which are any value) – Output data structure.

  • roi (a list of items which are any value) – Output ROI images.

  • sbref (a list of items which are any value) – Output sbrefs.

  • t1w (a list of items which are any value) – Output T1w images.

  • t2w (a list of items which are any value) – Output T2w images.

class DerivativesDataSink(allowed_entities=None, out_path_base=None, **inputs)[source]

Bases: DerivativesDataSink

Store derivative files.

A child class of the niworkflows DerivativesDataSink, using aslprep’s configuration files.

Mandatory Inputs:
  • in_file (a list of items which are a pathlike object or string representing an existing file) – The object to be saved.

  • source_file (a list of items which are a pathlike object or string representing a file) – The source file(s) to extract entities from.

Optional Inputs:
  • base_directory (a string or os.PathLike object) – Path to the base directory for storing data.

  • check_hdr (a boolean) – Fix headers of NIfTI outputs. (Nipype default value: True)

  • compress (a list of items which are a boolean or None) – Whether in_file should be compressed (True), uncompressed (False) or left unmodified (None, default). (Nipype default value: [])

  • data_dtype (a string) – NumPy datatype to coerce NIfTI data to, or source tomatch the input file dtype.

  • dismiss_entities (a list of items which are a string or None) – A list entities that will not be propagated from the source file. (Nipype default value: [])

  • meta_dict (a dictionary with keys which are a value of class ‘str’ and with values which are any value) – An input dictionary containing metadata.

Outputs:
  • compression (a list of items which are a boolean or None) – Whether in_file should be compressed (True), uncompressed (False) or left unmodified (None).

  • fixed_hdr (a list of items which are a boolean) – Whether derivative header was fixed.

  • out_file (a list of items which are a pathlike object or string representing an existing file)

  • out_meta (a list of items which are a pathlike object or string representing an existing file)

out_path_base = ''
class FunctionOverrideContext(module, function_name, new_function)[source]

Bases: object

Override a function in imported code with a context manager.

Even though this class is currently unused, I’m keeping it around for when I need to override prepare_timing_parameters once fMRIPrep’s init_bold_surf_wf is useable (i.e., once the DerivativesDataSink import is moved out of the function).

Here’s how it worked before:

def _fake_params(metadata): # noqa: U100

return {“SliceTimingCorrected”: False}

# init_bold_surf_wf uses prepare_timing_parameters, which uses the config object. # The uninitialized fMRIPrep config will have config.workflow.ignore set to None # instead of a list, which will raise an error. with FunctionOverrideContext(resampling, “prepare_timing_parameters”, _fake_params):

asl_surf_wf = resampling.init_bold_surf_wf(

mem_gb=mem_gb[“resampled”], metadata=metadata, surface_spaces=freesurfer_spaces, medial_surface_nan=config.workflow.medial_surface_nan, output_dir=config.execution.aslprep_dir, name=”asl_surf_wf”,

)

class OverrideDerivativesDataSink(module)[source]

Bases: object

A context manager for temporarily overriding the definition of DerivativesDataSink.

Parameters:

None

Attributes:

original_class (type) (The original class that is replaced during the override.)

__init__()[source]

Initialize the context manager.

__enter__()[source]

Enters the context manager and performs the class override.

__exit__(exc_type, exc_value, traceback)[source]

Exits the context manager and restores the original class definition.

__init__(module)[source]

Initialize the context manager with the target module.

Parameters:

module – The module where SomeClass should be overridden.