draw_from_multivariate_corr
                        Draw random samples from the given random
                        structure
get_random_structure    Compute structure of dependency from a given
                        data
match_with_spiked_wishart
                        Compute what spiked SD values will give you the
                        desired top eigenvalues by iteratively solving
multi_sample_spiked_wishart
                        Compute means of each singular value and the
                        mean Jacobian, see
                        sample_spiked_wishart_and_jac
read_counts             GSE151923: cortex from 6-month-old wildtype
                        C57BL/6 mice
remove_dependence       Remove all dependence in a random structure
sample_spiked_wishart   Efficiently sample the singular values
                        corresponding to a random Wishart matrix with
                        spiked eigenvalues Specifically, if W = G G^T
                        with each column of G drawn iid from N(0,
                        Sigma), then W is a Wishart matrix and this
                        function samples the singular values of G. The
                        eigenvalues of W are just the squares of the
                        singular values. Here, Sigma is diagonal with
                        its leading entries from spiked_sd^2 and all
                        remaining entries are population_sd^2.
sample_spiked_wishart_and_jac
                        Efficiently sample the singular values
                        corresponding to a random Wishart matrix with
                        spiked eigenvalues and the Jacobian I.e., these
                        are the singular values of G if GG^T is
                        Wishart. The square of these give the
                        eigenvalues of the random Wishart matrix.
