docs: def constructTotalCounts(self, logger):
          '''
          This function constructs the total count for each valid character in the array or loads them if they already exist.
          These will always be stored in '<DIR>/totalCounts.p', a pickled file
          '''
          self.totalSize = self.bwt.shape[0]
          
          abtFN = self.dirName+'/totalCounts.p'
          if os.path.exists(abtFN):
              fp = open(abtFN, 'r')
              self.totalCounts = pickle.load(fp)
              fp.close()
          else:
              chunkSize = 2**20
              if logger != None:
                  logger.info('First time calculation of \'%s\'' % abtFN)
              
              #figure out the counts using the standard counting techniques, one chunk at a time
              self.totalCounts = [0]*self.vcLen
              i = 0
              while i*chunkSize < self.bwt.shape[0]:
                  self.totalCounts = np.add(self.totalCounts, np.bincount(self.bwt[i*chunkSize:(i+1)*chunkSize], minlength=self.vcLen))
                  i += 1
              
              #save the total count to '<DIR>/totalCounts.p'
              fp = open(abtFN, 'w+')
              pickle.dump(self.totalCounts, fp)
              fp.close()