code: def __init__(self, case_list=None, verbose=False, **kwargs):
      # Data sources
      add_parameter(self, kwargs, "data_sources", None)
      self.data_types = [
          "directories",
          "filepaths",
          "csv",
          "numpy",
          "hdf5",
      ]
  
      # File location variables
      add_parameter(self, kwargs, "source", "directories")
      add_parameter(self, kwargs, "recursive", False)
      add_parameter(self, kwargs, "file_identifying_chars", None)
  
      self.open_hdf5 = None
      self.case_list = case_list
      self.verbose = verbose
  
      # Special behavior for augmentations
      self.augmentations = []
      self.preprocessors = []
      self.multiplier = 1
  
      # Empty vars
      self.cases = []
      self.total_cases = 0
      self.current_case = None
  
      # Data group variables
      self.data_groups = {}
  
      if self.data_sources is not None:
          for data_type in self.data_types:
              if data_type not in list(self.data_sources.keys()):
                  self.data_sources[data_type] = None
  
          self.fill_data_groups()
  
imports: import os
  import csv
  import numpy
  import tables
  import copy
  from tqdm import tqdm
  from deepneuro.augmentation.augment import Copy
  from deepneuro.utilities.conversion import read_image_files
  from deepneuro.data.data_group import DataGroup
  from deepneuro.data.data_load import parse_directories, parse_filepaths, parse_hdf5, parse_csv, parse_numpy
  from deepneuro.utilities.util import add_parameter
label_desc: Use image node_id 1 to create a new DataCollection object from inherited base classes: object with example: obj = DataCollection(case_list, verbose)