code: def run(self):
          
          if not self._readGroupIds:
              for referenceGroupId in self.getAllReadGroups():
                  self._run(referenceGroupId)
          else:
              for referenceGroupId in self._readGroupIds:
                  self._run(referenceGroupId)
docs: Iterate passed read group ids, or go through all available read groups