code: def augment(self, augmentation_num=0):
      for label, data_group in list(self.data_groups.items()):
          if self.random_sample:
              channels = np.random.choice(
                  self.mask_channels[label],
                  self.num_masked,
                  replace=False,
              )
          else:
              idx = [
                  x % len(self.mask_channels[label])
                  for x in range(
                      self.iteration, self.iteration + self.num_masked
                  )
              ]
              channels = self.mask_channels[label][idx]
  
          # Currently only works if applied to channels; revisit
          masked_data = np.copy(
              data_group.augmentation_cases[augmentation_num]
          )
  
          # for channel in channels:
          masked_data[..., channels] = self.masked_value
  
          data_group.augmentation_cases[
              augmentation_num + 1
          ] = masked_data
          data_group.augmentation_strings[augmentation_num + 1] = (
              data_group.augmentation_strings[augmentation_num]
              + self.augmentation_string
              + str(channels).strip("[]").replace(" ", "")
          )
  
imports: import numpy
  from deepneuro.utilities.util import add_parameter
label_desc: Use image node_id 4 for calling the MaskData obj's underlying member method code with example usage: obj.augment(augmentation_num) without return types