Skip to content
Snippets Groups Projects
Commit aac2b5d4 authored by Luke Zappia's avatar Luke Zappia
Browse files

Protect against integer overflow in sim functions

Fixes #49
parent 4ff20b74
No related branches found
No related tags found
No related merge requests found
......@@ -105,9 +105,11 @@ lunSimulate <- function(params = newLunParams(), verbose = TRUE, ...) {
rownames(cell.means) <- gene.names
if (verbose) {message("Simulating counts...")}
counts <- matrix(rnbinom(nGenes * nCells, mu = cell.means,
size = 1 / count.disp),
nrow = nGenes, ncol = nCells)
counts <- matrix(rnbinom(
as.numeric(nGenes) * as.numeric(nCells),
mu = cell.means, size = 1 / count.disp
),
nrow = nGenes, ncol = nCells)
if (verbose) {message("Creating final dataset...")}
rownames(counts) <- gene.names
......
......@@ -43,9 +43,10 @@ simpleSimulate <- function(params = newSimpleParams(), verbose = TRUE, ...) {
means <- rgamma(nGenes, shape = mean.shape, rate = mean.rate)
if (verbose) {message("Simulating counts...")}
counts <- matrix(rnbinom(nGenes * nCells, mu = means,
size = 1 / count.disp),
nrow = nGenes, ncol = nCells)
counts <- matrix(rnbinom(
as.numeric(nGenes) * as.numeric(nCells),
mu = means, size = 1 / count.disp),
nrow = nGenes, ncol = nCells)
if (verbose) {message("Creating final dataset...")}
cell.names <- paste0("Cell", seq_len(nCells))
......
......@@ -646,9 +646,10 @@ splatSimBCVMeans <- function(sim, params) {
bcv <- (bcv.common + (1 / sqrt(base.means.cell)))
}
means.cell <- matrix(rgamma(nGenes * nCells, shape = 1 / (bcv ^ 2),
scale = base.means.cell * (bcv ^ 2)),
nrow = nGenes, ncol = nCells)
means.cell <- matrix(rgamma(
as.numeric(nGenes) * as.numeric(nCells),
shape = 1 / (bcv ^ 2), scale = base.means.cell * (bcv ^ 2)),
nrow = nGenes, ncol = nCells)
colnames(means.cell) <- cell.names
rownames(means.cell) <- gene.names
......@@ -680,8 +681,10 @@ splatSimTrueCounts <- function(sim, params) {
nCells <- getParam(params, "nCells")
cell.means <- assays(sim)$CellMeans
true.counts <- matrix(rpois(nGenes * nCells, lambda = cell.means),
nrow = nGenes, ncol = nCells)
true.counts <- matrix(rpois(
as.numeric(nGenes) * as.numeric(nCells),
lambda = cell.means),
nrow = nGenes, ncol = nCells)
colnames(true.counts) <- cell.names
rownames(true.counts) <- gene.names
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment