docs: def list_analyses(self, component=None):
          """ Provides a list of all analyses groups.
          
          :param component: Optional component name. If provided, only
              analyses of that component will be returned.
          :returns: A list of component-name/group-name pairs (tuples).
          """
          self.assert_open()
          analyses = []
          if 'Analyses' not in self.handle:
              return analyses
          ana_groups = self.handle['Analyses'].keys()
          for group_name in ana_groups:
              group_attrs = self.handle['Analyses/{}'.format(group_name)].attrs
              if 'component' in group_attrs:
                  comp = _clean(group_attrs['component'])
              elif group_name[:-4] in LEGACY_COMPONENT_NAMES:
                  comp = LEGACY_COMPONENT_NAMES[group_name[:-4]]
              else:
                  # We don't know anything about this component!
                  comp = None
              if comp is not None and (component is None or comp == component):
                  analyses.append((comp, group_name))
          return analyses