Estimate mutual information for each pair of columns on Q given
        the set of samples.

        :param Q: List of tuples where each tuple contains the two column
            indexes to compare
        :type Q: list of two-tuples of ints
        :param n_samples: the number of simple predictive samples to use
        :type n_samples: int

        :returns: list of list -- where each sublist is a set of MIs and
            Linfoots from each crosscat sample.

def mutual_information(
            self, M_c, X_L_list, X_D_list, Q, seed, n_samples=1000):
        """Estimate mutual information for each pair of columns on Q given
        the set of samples.

        :param Q: List of tuples where each tuple contains the two column
            indexes to compare
        :type Q: list of two-tuples of ints
        :param n_samples: the number of simple predictive samples to use
        :type n_samples: int

        :returns: list of list -- where each sublist is a set of MIs and
            Linfoots from each crosscat sample.
        """
        get_next_seed = make_get_next_seed(seed)
        return iu.mutual_information(
            M_c, X_L_list, X_D_list, Q, get_next_seed, n_samples)