class_docstr: Detects outliers in a functional imaging series
  
  Uses intensity and motion parameters to infer outliers. If `use_norm` is
  True, it computes the movement of the center of each face a cuboid centered
  around the head and returns the maximal movement across the centers. If you
  wish to use individual thresholds instead, import `Undefined` from
  `nipype.interfaces.base` and set `....inputs.use_norm = Undefined`
  
  
  Examples
  --------
  
  >>> ad = ArtifactDetect()
  >>> ad.inputs.realigned_files = 'functional.nii'
  >>> ad.inputs.realignment_parameters = 'functional.par'
  >>> ad.inputs.parameter_source = 'FSL'
  >>> ad.inputs.norm_threshold = 1
  >>> ad.inputs.use_differences = [True, False]
  >>> ad.inputs.zintensity_threshold = 3
  >>> ad.run()  # doctest: +SKIP
class_docstr_tok: ["Detects","outliers","in","a","functional","imaging","series","Uses","intensity","and","motion","parameters","to","infer","outliers",".","If","`","use_norm","`","is","True",",","it","computes","the","movement","of","the","center","of","each","face","a","cuboid","centered","around","the","head","and","returns","the","maximal","movement","across","the","centers",".","If","you","wish","to","use","individual","thresholds","instead",",","import","`","Undefined","`","from","`","nipype.interfaces.base","`","and","set","`","....","inputs.use_norm","=","Undefined","`","Examples","--","--","--","--",">",">",">","ad","=","ArtifactDetect","(",")",">",">",">","ad.inputs.realigned_files","=","'functional.nii'",">",">",">","ad.inputs.realignment_parameters","=","'functional.par'",">",">",">","ad.inputs.parameter_source","=","'FSL'",">",">",">","ad.inputs.norm_threshold","=","1",">",">",">","ad.inputs.use_differences","=","[","True",",","False","]",">",">",">","ad.inputs.zintensity_threshold","=","3",">",">",">","ad.run","(",")","#","doctest",":","+SKIP"]
code: def _list_outputs(self):
      outputs = self._outputs().get()
      outputs["outlier_files"] = []
      outputs["intensity_files"] = []
      outputs["statistic_files"] = []
      outputs["mask_files"] = []
      if isdefined(self.inputs.use_norm) and self.inputs.use_norm:
          outputs["norm_files"] = []
          if self.inputs.bound_by_brainmask:
              outputs["displacement_files"] = []
      if isdefined(self.inputs.save_plot) and self.inputs.save_plot:
          outputs["plot_files"] = []
      for i, f in enumerate(ensure_list(self.inputs.realigned_files)):
          (
              outlierfile,
              intensityfile,
              statsfile,
              normfile,
              plotfile,
              displacementfile,
              maskfile,
          ) = self._get_output_filenames(f, os.getcwd())
          outputs["outlier_files"].insert(i, outlierfile)
          outputs["intensity_files"].insert(i, intensityfile)
          outputs["statistic_files"].insert(i, statsfile)
          outputs["mask_files"].insert(i, maskfile)
          if isdefined(self.inputs.use_norm) and self.inputs.use_norm:
              outputs["norm_files"].insert(i, normfile)
              if self.inputs.bound_by_brainmask:
                  outputs["displacement_files"].insert(
                      i, displacementfile
                  )
          if isdefined(self.inputs.save_plot) and self.inputs.save_plot:
              outputs["plot_files"].insert(i, plotfile)
      return outputs
  
imports: import os
  from copy import deepcopy
  from nibabel import load, funcs, Nifti1Image
  import numpy
  from ..interfaces.base import BaseInterface, traits, InputMultiPath, OutputMultiPath, TraitedSpec, File, BaseInterfaceInputSpec, isdefined
  from ..utils.filemanip import ensure_list, save_json, split_filename
  from ..utils.misc import find_indices, normalize_mc_params
  from ..None import logging, config
label_desc: Use image node_id 3 for calling the ArtifactDetect obj's underlying member method code with example usage: obj._list_outputs() and returns: outputs