docs: def run(self, graph):
          """Seed the graph or return none if not possible.
  
          :type graph: pybel.BELGraph
          :rtype: Optional[pybel.BELGraph]
          """
          if not self:
              log.debug('no seeding, returning graph: %s', graph)
              return graph
  
          subgraphs = []
  
          for seed in self:
              seed_method, seed_data = seed[SEED_METHOD], seed[SEED_DATA]
  
              log.debug('seeding with %s: %s', seed_method, seed_data)
              subgraph = get_subgraph(graph, seed_method=seed_method, seed_data=seed_data)
  
              if subgraph is None:
                  log.debug('seed returned empty graph: %s', seed)
                  continue
  
              subgraphs.append(subgraph)
  
          if not subgraphs:
              log.debug('no subgraphs returned')
              return
  
          return union(subgraphs)