code: def get_gos_all(self):
          
          gos_all = set()
          # Get:
          #   * Header GO IDs that are not user GO IDs
          #   * User GO IDs that are under header GOs
          for hdrgo, usrgos in self.hdrgo2usrgos.items():
              gos_all.add(hdrgo)
              gos_all |= usrgos
          # User GO IDs that are header GOs in groups containing no other user GO IDs
          gos_all |= self.hdrgo_is_usrgo
          assert gos_all == self.usrgos.union(set(self.hdrgo2usrgos.keys()))
          assert len(self.usrgos.difference(gos_all)) == 0, \
              "GROUPER ERROR: {GOs}".format(GOs=self.usrgos.difference(gos_all))
          return gos_all
docs: Return a flat list of all GO IDs in grouping object.
  
             All GO IDs:
                 * header GO IDs that are not user GO IDs
                 * user GO IDs that are under header GOs
                 * user GO IDs that are header GOs in groups containing no other user GO IDs