code: def compute(self, nodes):
          
  
          result = defaultdict(list)
  
          # Create links when clusters from different hypercubes have members with the same sample id.
          candidates = itertools.combinations(nodes.keys(), 2)
          for candidate in candidates:
              # if there are non-unique members in the union
              if (
                  len(set(nodes[candidate[0]]).intersection(nodes[candidate[1]]))
                  >= self.min_intersection
              ):
                  result[candidate[0]].append(candidate[1])
  
          edges = [[x, end] for x in result for end in result[x]]
          simplices = [[n] for n in nodes] + edges
          return result, simplices
docs: Helper function to find edges of the overlapping clusters.
  
          Parameters
          ----------
          nodes:
              A dictionary with entires `{node id}:{list of ids in node}`
  
          Returns
          -------
          edges:
              A 1-skeleton of the nerve (intersecting  nodes)
  
          simplicies: 
              Complete list of simplices