docs: def remove_intra(M, contigs):
      """Remove intrachromosomal contacts
  
      Given a contact map and a list attributing each position
      to a given chromosome, set all contacts within each
      chromosome or contig to zero. Useful to perform
      calculations on interchromosomal contacts only.
  
      Parameters
      ----------
      M : array_like
          The initial contact map
      contigs : list or array_like
          A 1D array whose value at index i reflect the contig
          label of the row i in the matrix M. The length of
          the array must be equal to the (identical) shape
          value of the matrix.
  
      Returns
      -------
      N : numpy.ndarray
          The output contact map with no intrachromosomal contacts    
      """
  
      N = np.copy(M)
      n = len(N)
  
      assert n == len(contigs)
  
      # Naive implmentation for now
      for (i, j) in itertools.product(range(n), range(n)):
          if contigs[i] == contigs[j]:
              N[i, j] = 0
  
      return N