Skip to main content

This is a preprint.

It has not yet been peer reviewed by a journal.

The National Library of Medicine is running a pilot to include preprints that result from research funded by NIH in PMC and PubMed.

bioRxiv logoLink to bioRxiv
[Preprint]. 2025 Feb 6:2025.01.31.634335. [Version 1] doi: 10.1101/2025.01.31.634335

Generating Correlated Data for Omics Simulation

Jianing Yang 1,2, Gregory R Grant 3, Thomas G Brooks 4
PMCID: PMC11838456  PMID: 39975030

Abstract

Simulation of realistic omics data is a key input for benchmarking studies that help users obtain optimal computational pipelines. Omics data involves large numbers of measured features on each samples and these measures are generally correlated with each other. However, simulation too often ignores these correlations, perhaps due to the inconvenience and computational hurdles of doing so. To alleviate this, we describe in detail three approaches for quickly generating omics-scale data with correlated measures which mimic real data sets. These approaches all are based on a Gaussian copula approach with a covariance matrix that decomposes into a diagonal part and a low-rank part. We use these approaches to demonstrate the importance of including correlation in two benchmarking applications. First, we show that variance of results from the popular DESeq2 method increases when dependence is included. Second, we demonstrate that CYCLOPS, a method for inferring circadian time of collection from transcriptomics, improves in performance when given gene-gene dependencies in some circumstances. We provide an R package, dependentsimr, that has efficient implementations of these methods and can generate dependent data with arbitrary distributions, including discrete (binary, ordered categorical, Poisson, negative binomial), continuous (normal), or with an empirical distribution.

Introduction

Omics data typically has far fewer samples than measurements per sample. This creates dual challenges in generating realistic simulated data for the purposes of benchmarking. First, there isn’t enough data to be able to compute a dependence structure (e.g., a full-rank correlation matrix). Second, generating omicsscale data with a specified correlation matrix is slow due to the typical On3 nature of these algorithms, where n is the number of measurements per sample. Moreover, there is a lack of practical guidance on how to generate simulated data with realistic dependence. These often mean that simulators assume independence of the measurements, which does not reflect reality.

Here, we give an introduction to the theory and practice of generating dependent data and describe three related solutions which all offer good performance and ease-of-use even for large omics-scale problems. This expands off a discussion we originally wrote as part of a larger discussion on best practices in omics benchmarking (Brooks et al. 2024). Our goal here is to produce guidelines that show that generating correlated data does not have to be onerous and instead should be considered a baseline requirement when simulating data.

We present three methods that operate by inferring a covariance matrix that decomposes into a diagonal part and a low-rank part. Using a Gaussian copula (Nelsen 1998) approach (also referred to as NORTA, for “normal to anything” (Cario and Nelson 1997)), the marginal (univariate) distributions can have realistic forms. These solutions operate by taking a real dataset and mimicking it. For ease of use, we implement this in an R package which supports normal, Poisson, DESeq2-based (negative binomial with sample-specific size factors), and empirical (for ordinal data) marginal distributions.

We implemented three different strategies for determining the diagonal and low-rank parts of the covariance matrix. First, the ‘PCA’ method uses principal component analysis (PCA) and picks the low-rank part such that the simulated data has the same variance in the top k PCA components of the reference dataset. Second, the ‘spiked Wishart’ method fits k components such that simulations with the same number of samples as the reference dataset will have, on average, the same PCA component variances as the reference. Unlike ‘PCA’, these variances are computed with resepect to the simulated data’s own PCA and not using the PCA weights of the reference dataset. Third, the ‘corpcor’ method uses the popular R library corpcor (Schäfer and Strimmer 2005; Opgen-Rhein and Strimmer 2007), which implements a James-Stein type shrinkage estimator for the covariance matrix as a linear interpolation of the sample covariance matrix and a diagonal matrix. No method exactly captures the input data, indicating room for future research, but all improve upon the common approach of assuming independence.

We show two applications which demonstrate the effects of including dependence of measurements in simulated data when benchmarking computational pipelines. First, we simulate RNA-seq data with differential expression between two conditions. Using DESeq2 to determine the differentially expressed genes, we found that dependence had little impact on the accuracy of reported p-values but increased the variance of those estimates. Second, we simulated a time series of RNA-seq data points and used the CYCLOPS method (Anafi et al. 2017) to infer collection time from the RNA-seq data, without time labels. Depending upon settings used, performance of CYCLOPS dependent substantially on the dependence structure of the data, and surprisingly showed worst performance when given data with independent genes.

Results

Assume that we have a reference dataset X given by an p×n data matrix of p features measured in each of n independent samples. We want to capture correlations between the p features, which could represent gene expressions, protein abundances, or other measured values. We refer to these features as genes for simplicity. Our goal is to generate simulated data with the same p genes, the same marginal distributions of each gene as in X and realistic gene-gene dependence.

Multivariate normal distribution

We first discuss the simplest case, where our data set is multivariate normally distributed. The distribution N(μ,) is the multivariate normal distribution with mean vector μ and covariance matrix . Here μ is a p×1 column vector and is a p×p matrix. In order for this to work, must be symmetric and positive semi-definite, meaning that all of its eigenvalues are non-negative. This matrix is conceptually simple, since ij gives the the covariance of xi and xj when x~N(μ,). More specifically, this is the population covariance matrix of N(μ,), which does not generally equal the sample covariance matrix. Indeed, if X is n samples from N(μ,), then ˆ(X-X)(X-X)T/(n-1) is the sample covariance matrix where X is the average of the n samples. For large n,ˆ will closely approximate , but we care primarily about the situation where n is small. In particular, ˆ is at most a rank n1 matrix while could be up to rank p. This means that N(μ,ˆ) and N(μ,) are quite different distributions: every sample from N(μ,ˆ) is contained in an n1 dimensional plane. If n is small, then this is very unlike real data, which typically is close to p dimensional.

The difficulty then is that we only know ˆ from our reference data set, but we need to choose a with which we can simulate data and the obvious choice of ˆ is inadequate. The most common choice is to assume is a diagonal matrix. This is the situation we want to avoid where the generated data is independent: xi and xj have zero covariance unless i=j. However, this has some nice properties, such as being simple and fast to simulate (just generate univariate normal data for each variable).

We describe three alternative approaches in Methods of how to choose a that will produce data similar to the input data. All three of these rely on a specific form of , namely that

=D2+PPT

where D is a p×p diagonal matrix and P is p×k for some kp. This is a combination of an independent part (the diagonal matrix) and a low-rank part (PPT). The low-rank part is also simple to generate data for. If x is a vector of k independent univariate standard normal values, then Px~N0,PPT. The choice of specific D and P matrices is more in-depth and we leave the details for the Methods section. We have three alternative means for doing so, which we refer to as the PCA, spiked Wishart, and corpcor methods.

Lastly, we emphasize that multivariate normal distributions do not capture all, or even most, types of possible dependence. Indeed, we see this even in the 2-dimensional case where it is well known that correlation describes only a linear relationship between two variables while in reality they may have much more complex relations. In higher dimensions, the problem is only worse. So any method based off multivariate normal distributions are making large assumptions about distribution. However, it is necessary to make some assumption like this. In the next section, though, we see that “normal” part is actually not a large obstacle.

Gaussian copula

Building on the multivariate normal distribution, a popular approach to describe dependence in a highdimensional settings is called the Gaussian copula approach. The idea of this approach is that by normalizing and later reversing the normalization, data that does not fit a normal distribution can still have its dependence structure described using a multivariate normal distribution. This allows the marginal (i.e., univariate) distributions of each genes to be specified separately from the dependence between genes. This operates first by normalizing each gene by fitting a distribution (such as a normal distribution, Poisson, negative binomial, or other form), and then applying the fit cumulative distribution function (CDF) to the observed values. Finally, those are fed to a standard normal distribution’s inverse CDF to obtain values that are approximately normally distributed. These values are then used to compute a covariance matrix and the data is assumed to follow a multivariate normal distribution in p dimensions with that covariance matrix.

Here, we describe the approach using the form of covariance matrix =D2+PPT as above. Once data is obtained Z~N(0,), then one can undo the normalization process to obtain data with the same marginal distributions as the fit marginal distributions but with dependence determined by . We describe this in detail:

  1. Fit marginal distributions to each feature in X to determine CDFs Fi for each feature.

  2. Transform X to normalized values by Zij=Φ-1FiXij where Φ is the CDF of the standard normal distribution.

  3. Compute D,U,W matrices from X by one of three methods (see Methods).

  4. Generate k i.i.d. standard normally distributed values u and p i.i.d standard normally distributed values v.

  5. Set Z=UWu+Dv.

  6. Output the vector X where Xi=Fi-1ΦZ.

The generated data Z has covariance matrix =D2+UWUT=D2+PPT, where PUW. Moreover, we require that satisfies that eieiT is approximately 1. That guarantees that the output X has each entry with the same marginal distributions Fi as was originally fit and inherits gene-gene dependence from Z. This method is computationally efficient, taking hardly any more time or memory than simulations without dependence.

Comparison to real data

To compare the three simulation methods with a real data set, we chose as a references data set 12 mouse cortex RNA-seq samples from accession GSE151923 (Wang et al. 2022). We then simulated data mimicking this reference using all three simulation methods (PCA, spiked Wishart, and corpcor) as well as a simulation with independent genes. We repeated the simulations, each of 12 samples, a total of 8 times to estimate variance. For the PCA method, we used k=2 dimensions and for the spiked Wishart, k=11. The coprcor method always uses the full data matrix, analogous to k=11. Note that PCA method must use a rank k<11 in order to generate full-rank data, see Methods, so these parameters are not directly comparable across methods.

Simulated data captures the genes’ mean and variance accurately (Figure 1 ab). Next, we compared to the real data set when projected onto the top two principal components of the real data set (Figure 1 c). The simulations with dependence are distributed around the entire space like the real data, but the independent simulations have unrealistically low variance in these components, clustering tightly around the origin.

Figure 1:

Figure 1:

Comparison to real data run on a mouse cortex data set from GSE151923. (a-b) Comparison of gene (a) mean expression and (b) variance, log-scaled in real and PCA simulated data. The line of equality is marked in black. Points are colored according to the density of points in their region. Wishart and corpcor methods give similar results (not shown). (c) Quantile-quantile plot comparing correlation values of gene pairs from real data and simulated data (both with and without dependence). Genes with at least 300 reads were used. Values on the diagonal line indicate a match between the simulated and real data sets. (d) Projections onto the top two principal components of the real data set for both real and simulated data. All 8 simulations (96 samples for each simulation) shown. (e) Principal component analysis was performed on all data sets and the variance captured by the top components is shown. Unlike (d), these components were fit from each data set considered separately instead of reusing the weights from the real data.

Then, we computed the gene-gene correlation on pairs of high-expressed genes (at least 300 mean reads). The simulation with independence showed the least levels of gene-gene correlations (Figure 1 d). However, the PCA method overshot the reference data set and the spiked Wishart and corpcor methods only slightly improved upon the independent simulation.

Lastly, we compared the variances of principal components on each data set (Figure 1 e). These were computed separately for each data set, unlike (Figure 1 c) which used the reference data set’s PCA weights for all data sets. The independent data has much lower variance than the real data set in the top four principal components. The spiked Wishart method comes closest to the real data set, as it optimizes for fitting these values. Surprisingly, the corpcor method performs only somewhat better than the independent method. The PCA method puts a large amount of variance into the first two components (due to using k=2) and then undershoots the other components.

DESeq2 application

We benchmarked DESeq2 (Love, Huber, and Anders 2014), a popular differential expression analysis tool, using data sets simulated with dependence and ones simulated without dependence to compare its performances on both. DESeq2 presents an interesting case because several aspects of it assume independence of genes and so may be adversely affected by gene-gene dependence. First, the independent filtering step (Bourgon, Gentleman, and Huber 2010) assumes independence but has been reported to be robust to typical gene-gene dependence. Relatedly, the false discovery rate (FDR) (Benjamini and Hochberg 1995) allows only certain forms of dependence. Lastly, DESeq2’s empirical Bayes steps could possibly be affected by gene dependence.

We used a fly whole body RNA-Seq data set GSE81142 and selected samples of male flies without treatment and after at least 2 hours of feeding to simulate 5 “control” samples. We then randomly selected 5% of the genes to be differentially expressed, with absolute log2 fold change uniformly distributed between 0.2 and 2.0, either up or down regulated chosen randomly, and simulated 5 “experimental” samples. This was repeated 20 times for each of four dependence conditions (independent, PCA, Wishart, and corpcor).

Finally, we ran DESeq2 on each simulated 5 vs 5 experiment and compared the output FDR with the true percentages of genes that are differential expressed (Figure 2 ad). We observed that DESeq2 is anti-conservative on all data sets, with similar mean true FDRs for each estimated FDR cutoff. However, there was a greater variance in the performance of DESeq2 on the data sets simulated with dependence, indicating that it performs less consistently on data sets with gene-gene dependence, as in real data sets.

Figure 2:

Figure 2:

Performance of DESeq2 on simulated datasets. (a-d) Comparison of true false discovery proportions and DESeq2 reported False Discovery Rates, plotted on a log scale, for data sets simulated from the fly whole body data set (GSE81142), (a) without dependence, (b) using PCA, (c) using Wishart and (d) using corpcor. Diagonal line represents perfect estimation of FDR. (e-h) Comparison of true false discovery proportions and DESeq2 reported FDR for data sets simulated from the mouse cortex data set (GSE151923), (e) without dependence, (f) using PCA, (g) using Wishart and (h) using corpcor.

To demonstrate the application of our simulation method for another organism, we also simulated data sets using mouse cortex data set GSE151923 (Wang et al. 2022) and selected samples from male mice. We then simulated differential expression experiments as above and observed a similar result (Figure 2ef) as for the fly whole body data sets.

CYCLOPS application

We next used our simulation method to benchmark CYCLOPS (Anafi et al. 2017), which infers relative times for a set of unlabeled samples using an autoencoder to identify circular structures. We chose a mouse cortex time series data set GSE151565, which contains a total of 77 samples every 3 hours, for 36 hours. We computed the dependence structure of the genes as well as the variances of marginal distributions using the 12 time point 0 samples and computed the means of gene expressions at each time point. We then used these to simulate 20 time series data sets for each of the independent, PCA, Wishart, and corpcor simulation methods.

We ran CYCLOPS on each data set with a list of cyclic mouse genes (from (Zhang et al. 2014), JTK p-value < 0.05), which yielded an estimated relative time for each sample. We evaluated CYCLOPS’ performance compared to true circadian time using the circular correlation (Fisher and Lee 1983), defined as follows:

ρ=1i<jnsinXi-XjsinYi-Yj1i<jnsinXi-Xj21/21i<jnsinYi-Yj21/2,

where n is the number of samples, Xi and Yi are the true time and CYCLOPS-estimated time, respectively, for the i-th sample. ρ has value between −1 and 1, and a |ρ| close to 1 indicates accurate predictions by CYCLOPS.

By default, CYCLOPS performs dimension reduction so that each dimension (called an “eigengene”) contains at least 3% of the total variance. We found that CYCLOPS performance depended significantly on this parameter, with the default producing good performance across all simulations. However, when dropping CYCLOPS to require just 2% variance in each eigengene, we found that its performance depends significantly on the dependence structure of the simulated time series data (Figure 3 a). At that setting, CYCLOPS performance is much higher in the PCA method and moderately improved in Wishart method, compared to the independent method. This difference is likely driven by the difference in the number of eigengenes used (Figure 3 b), which is a measure of how much dependence is present in the data set. This demonstrates that the correlational structure of the transcriptome can have a major impact on performance.

Figure 3:

Figure 3:

Performance of CYCLOPS on simulated time series data sets based on mouse cortex data set (GSE151565), using eigengenes of at least 2% variance. (a) Absolute circular correlations between true phases and CYCLOPS estimated phases on the simulated data sets. (b) The number of eigengenes used by CYCLOPS; the dotted line indicates the number of eigengenes used by CYCLOPS on the real data (5). (c-f) Examples of CYCLOPS estimated phases on the simulated data sets. CYCLOPS shows good performance when it separates out points by color (true circadian time).

Methods

Below, we describe the three methods for selecting the components of the covariance matrix D2+PPT.

PCA method

The first of our three methods attempts to match the top k PCA components of the normalized reference dataset Z. Specifically, let u1,,uk be the left singular vectors of Z with λ1,,λk the corresponding top k signular values. This method computes such that uiTui=λi2, i.e. that the variance in the direction of ui exactly matches of the reference dataset’s variance in that same direction. One solution is to use the sample covariance matrix, but that is not full rank and would match for all in instead of just ik. Instead, we use the following:

  1. Compute Aij=δij-U,i2U,j2 and Bi=λi2/(n-1)2-U,i2V where δij is the Kronecker delta and V=ZTZ/(n-1) is the covariance matrix of Z.

  2. Solve Aw=B and set W to be the diagonal matrix with w along its diagonal.

  3. Set U to be the p×k matrix with columns ui.

  4. Set D to be the diagonal matrix with Dii=Vii-UW2UTii, which is the remaining variance.

Steps 1 and 2 give that uiuiT=λi for i=1,,k. Step 4 ensures that ejejT=1 for j=1,,p.

Spiked Wishart method

The second method also makes use of PCA but has a different objective. If n samples are drawn from N(0,) then we want the variances of their PCA components to match those of the reference dataset. Specifically, let λ1,,λn-1 be the n1 non-zero singular values of Z(λn is always approximately zero due to the normalization procedure), and let λ1,,λn-1 be the singular values of Z where Z has n-1 columns each iid N(0,). Then we want to choose such that Eλi=λi for each i, where E[Y] denotes the expectation of the random variable Y.

Since the distribution of the λi does not have a known analytic solution, we approximate this situation with the spiked Wishart distribution. The rank k-1 Wishart distribution is that of the sample covariance matrix of Y where the n columns of Y are iid N(0,). The spiked Wishart is the special case where has k arbitrary eigenvalues and the remaining are all equal to a constant. Note that the singular values of Y are the square roots of the eigenvalues of its sample covariance matrix. While our case has non-diagonal, may be diagonalized by orthogonal rotations due the sepctral theorem, and orthogonal rotations do not change the singular values of Y. Therefore, the distribution of singular values is not affected by the assumption that is diagonal. Moreover, for the form =D2+UWUT where p is very large, each column of U is typically very close to orthogonal to any ei, a standard basis vector. Therefore, when D=c2I for some constant c, we can approximate as having k arbitrary eigenvalues from W and n remaining eigenvalues all equal to c corresponding to D. This is a spiked Wishart distribution.

However, the spiked Wishart distribution also has no known analytic solution for the distribution of its eigenvalues either. Therefore, we use an efficient sampling and stochastic gradient descent method that we recently described (Brooks 2024). Since the dataset has been normalized, c will be close to one and eieiT1.

Specifically, we do:

  1. Set U to be the p×k matrix with columns ui, the left singular vectors of Z.

  2. Compute w1,,wk and c by stochastic gradient descent minimizing iEλi-λi2 for diagonal with entries w1,,wk,c2,,c2 (Brooks 2024).

  3. Set W diagonal with the entries w1,,wk.

  4. Set D=cI

Corpcor method

The corpcor package (Schäfer and Strimmer 2005; Opgen-Rhein and Strimmer 2007) computes a JamesStein type shrinkage estimator for the covariance matrix. For large p, this greatly improves the estimate of the covariance matrix by introducing a little bias towards zero correlations and equal variances of genes. It computes optimal values of λ1, and λ2, its two regularization coefficients. It then uses λ1 to linearly interpolate the sample covariance matrix towards the identity matrix I and λ2 to interpolate the vector of variances towards the median variance value. Since the sample covariance matrix is rank at most n, we again obtain a matrix of the form =D2+UWUT.

This algorithm is:

  1. Compute the λ1 and λ2 values from corpcor::estimate.lambda and corpcor::estimate.lambda.var functions on Z, respectively.

  2. Set D to be diagonal with Dii=λ1λ2σmed+1-λ2σi where σi is the standard deviation of the Zi. and σmed is the median of the σi.

  3. Set U to be 1-λSZ/n-1 where S is the diagonal matrix with Sii=λ2σmed/σi+1-λ2.

  4. Set W to the identity.

Discussion

We described the well-known Gaussian copula approach and recommended a specific form of covariance matrix which is well tailored to omics data simulation. We developed three methods using this form of covariance matrix which can be used to mimic a reference data set for simulation. All of these methods use a multivariate normal distribution as an intermediate step and therefore substantially restrict the kinds of dependence that can be simulated. However, when operating in a high-dimensional space some simplification is likely required.

To encourage adoption of dependence in simulated omics data, we developed dependentsimr, an R package that generates omics-scale data with realistic correlation. This implementation is efficient and simple, requiring just two lines of code to fit a model to a reference data set and then simulate data from it. We demonstrated this package on RNA-seq data, using the DESeq2 method to fit negative binomial marginal distributions. However, this package is actually quite general and supports normal, Poisson, negative binomial, and arbitrary ordered discrete distributions using the empirical CDF. Moreover, it can support multi-modal data such as is increasingly common in multi-omics.

We demonstrated the importance of including gene-gene dependence in simulated data by two application benchmarks. In the first, DESeq2 results were substantially more variable when simulating with gene-gene dependence. In the second, CYCLOPS performance in estimating circadian phases depends upon genegene dependence, was sensitive to dependence structure of the data.

Our comparisons to a real dataset show that none of our three methods are able to exactly capture all aspects of the real dataset. In particular, the gene-gene correlations were too high in the PCA method and too low in the spiked Wishart and corpcor methods. Surprisingly, the spiked Wishart and corpcor methods improved in this metric only slightly compared to the simulations with independent genes. These observations demonstrate that there is room for future improvements over independent data in these techniques, possibly incorporating more recent developments in copulae (Größer and Okhrin 2022). Possibly, this could demonstrate the limitations of methods based on the multivariate normal distribution or of the low-rank approximation used by all three of our methods. Nonetheless, these methods represent significant improvements by other metrics and we recommend the inclusion of some dependence in nearly every simulated omics dataset.

Alternatives

We highlight some alternative approaches and software packages that have been taken below.

The R package SPsimSeq (Assefa, Vandesompele, and Thas 2020) provides a dedicated RNA-seq and singlecell RNA-seq simulator using a Gaussian copula approach to simulate gene dependence. In contrast to this package, it uses WGCNA to determine the correlation matrix, which is a gene network approach. However, this method takes significant computational resources. Indeed, the SPsimseq paper generated data for just 5000 genes based on a randomly sampled 5000 gene subset of the RNA-seq data and our attempts to use SPsimseq to generate a full sample exhausted the memory of a 24GB computer. In contrast, our method runs in seconds to generate a 40,000 gene samples on the same computer. SPsimseq is more specialized and full-featured for RNA-seq simulation, providing, for example, native differential expression (DE) options. In comparison, our dependentsimr package requires manually setting marginal expression values to inject DE, but also supports other marginal distributions for situations outside of RNA-seq.

The scDesign2 simulator (Sun et al. 2021) for single-cell RNA-seq also uses Gaussian copula and, like our method, uses the approach of estimating the correlation matrix from the normalized dataset. However, it limits this correlation matrix to top-expressed genes. Since correlation is most discernible in high-expressed genes, this approach is reasonable but requires making certain arbitrary cutoffs that our methods avoid.

Other Gaussian copula-based R packages that may be applicable, at least for datasets with smaller numbers of features, include bindata, Genord, and SimMultiCorrData, the last of these being the most comprehensive. The bigsimr package provides faster implementations of these methods to scale up to omics-level data. However, even this is computationally demanding; their paper references generating 20,000-dimensional vectors in “under an hour” using 16 threads. The copula package provides even more flexible dependence options through use of copulas. All of these packages provide more flexibility in specifying dependence than our package, which can only mimic existing datasets, and therefore the longer run-times may be unavoidable for use cases where researchers need to parameterize the dependence structure.

Funding statement and competing interests

JY received funding from National Institute of Neurological Disorders and Stroke (5R01NS048471). TB and GG received funding support from the National Center for Advancing Translational Sciences Grant (5UL1TR000003). The funders had no role in this research, the decision to publish, or the preparation of this manuscript.

Funding Statement

JY received funding from National Institute of Neurological Disorders and Stroke (5R01NS048471). TB and GG received funding support from the National Center for Advancing Translational Sciences Grant (5UL1TR000003). The funders had no role in this research, the decision to publish, or the preparation of this manuscript.

Footnotes

The authors declare no competing interests.

Contributor Information

Jianing Yang, Institute for Translational Medicine and Therapeutics, University of Pennsylvania; Chronobiology and Sleep Institute, University of Pennsylvania.

Gregory R. Grant, Institute for Translational Medicine and Therapeutics, University of Pennsylvania

Thomas G. Brooks, Institute for Translational Medicine and Therapeutics, University of Pennsylvania

Data availability

Source code for all simulations and figures in this plot is available at github.com/itmat/dependent_sim_paper/. Source code for the dependentsimr package is available at github.com/tgbrooks/dependent_sim. All data used is available with accession numbers GSE151923, GSE81142, GSE151565.

References

  1. Anafi Ron C, Francey Lauren J, Hogenesch John B, and Kim Junhyong. 2017. “CYCLOPS Reveals Human Transcriptional Rhythms in Health and Disease.” Proc. Natl. Acad. Sci. U. S. A. 114 (20): 5312–17. [DOI] [PMC free article] [PubMed] [Google Scholar]
  2. Assefa Alemu Takele, Vandesompele Jo, and Thas Olivier. 2020. “SPsimSeq: Semi-Parametric Simulation of Bulk and Single-Cell RNA-sequencing Data.” Bioinformatics 36 (10): 3276–78. [DOI] [PMC free article] [PubMed] [Google Scholar]
  3. Benjamini Yoav, and Hochberg Yosef. 1995. “Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing.” Journal of the Royal Statistical Society. Series B (Methodological) 57 (1): 289–300. http://www.jstor.org/stable/2346101. [Google Scholar]
  4. Bourgon Richard, Gentleman Robert, and Huber Wolfgang. 2010. “Independent Filtering Increases Detection Power for High-Throughput Experiments.” Proc. Natl. Acad. Sci. U. S. A. 107 (21): 9546–51. [DOI] [PMC free article] [PubMed] [Google Scholar]
  5. Brooks Thomas G. 2024. “Sampling Spiked Wishart Eigenvalues.” https://arxiv.org/abs/2410.05280. [DOI] [PMC free article] [PubMed]
  6. Brooks Thomas G., Lahens Nicholas F., Mrčela Antonijo, and Grant Gregory R.. 2024. “Challenges and Best Practices in Omics Benchmarking.” Nature Reviews Genetics 25 (5): 326–39. 10.1038/s41576-023-00679-6. [DOI] [PubMed] [Google Scholar]
  7. Cario Marne C., and Nelson Barry L.. 1997. “Modeling and Generating Random Vectors with Arbitrary Marginal Distributions and Correlation Matrix.”
  8. Fisher N. I., and Lee A. J.. 1983. “A correlation coefficient for circular data.” Biometrika 70 (2): 327–32. 10.1093/biomet/70.2.327. [DOI] [Google Scholar]
  9. Größer Joshua, and Okhrin Ostap. 2022. “Copulae: An Overview and Recent Developments.” WIREs Computational Statistics 14 (3): e1557. https://doi.org/ 10.1002/wics.1557. [DOI] [Google Scholar]
  10. Love Michael I, Huber Wolfgang, and Anders Simon. 2014. “Moderated Estimation of Fold Change and Dispersion for RNA-seq Data with DESeq2.” Genome Biol. 15 (12): 550. [DOI] [PMC free article] [PubMed] [Google Scholar]
  11. Nelsen Roger. 1998. An Introduction to Copulas. Lecture Notes in Statistics. New York, NY: Springer. [Google Scholar]
  12. Opgen-Rhein Rainer, and Strimmer Korbinian. 2007. Statistical Applications in Genetics and Molecular Biology 6 (1). https://doi.org/doi: 10.2202/1544-6115.1252. [DOI] [PubMed] [Google Scholar]
  13. Schäfer Juliane, and Strimmer Korbinian. 2005. Statistical Applications in Genetics and Molecular Biology 4 (1). https://doi.org/doi: 10.2202/1544-6115.1175. [DOI] [PubMed] [Google Scholar]
  14. Sun Tianyi, Song Dongyuan, Li Wei Vivian, and Li Jingyi Jessica. 2021. “scDesign2: A Transparent Simulator That Generates High-Fidelity Single-Cell Gene Expression Count Data with Gene Correlations Captured.” Genome Biol. 22 (1): 163. [DOI] [PMC free article] [PubMed] [Google Scholar]
  15. Wang Nan, Langfelder Peter, Stricos Matthew, Ramanathan Lalini, Richman Jeffrey B, Vaca Raymond, Plascencia Mary, et al. 2022. “Mapping Brain Gene Coexpression in Daytime Transcriptomes Unveils Diurnal Molecular Networks and Deciphers Perturbation Gene Signatures.” Neuron 110 (20): 3318–3338.e9. [DOI] [PMC free article] [PubMed] [Google Scholar]
  16. Zhang Ray, Lahens Nicholas F, Ballance Heather I, Hughes Michael E, and Hogenesch John B. 2014. “A Circadian Gene Expression Atlas in Mammals: Implications for Biology and Medicine.” Proc. Natl. Acad. Sci. U. S. A. 111 (45): 16219–24. [DOI] [PMC free article] [PubMed] [Google Scholar]

Associated Data

This section collects any data citations, data availability statements, or supplementary materials included in this article.

Data Availability Statement

Source code for all simulations and figures in this plot is available at github.com/itmat/dependent_sim_paper/. Source code for the dependentsimr package is available at github.com/tgbrooks/dependent_sim. All data used is available with accession numbers GSE151923, GSE81142, GSE151565.


Articles from bioRxiv are provided here courtesy of Cold Spring Harbor Laboratory Preprints

RESOURCES