library(monocle)
library(HSMMSingleCell)
context("markerDiffTable is functioning properly")
data(HSMM_expr_matrix)
data(HSMM_gene_annotation)
data(HSMM_sample_sheet)
pd <- new("AnnotatedDataFrame", data = HSMM_sample_sheet)
fd <- new("AnnotatedDataFrame", data = HSMM_gene_annotation)
# First create a CellDataSet from the relative expression levels
HSMM <- newCellDataSet(as.matrix(HSMM_expr_matrix),
phenoData = pd,
featureData = fd,
lowerDetectionLimit=0.1,
expressionFamily=tobit(Lower=0.1))
# Next, use it to estimate RNA counts
rpc_matrix <- relative2abs(HSMM, method = "num_genes")
# Now, make a new CellDataSet using the RNA counts
HSMM <- newCellDataSet(as(as.matrix(rpc_matrix), "sparseMatrix"),
phenoData = pd,
featureData = fd,
lowerDetectionLimit=0.5,
expressionFamily=negbinomial.size())
HSMM <- estimateSizeFactors(HSMM)
HSMM <- estimateDispersions(HSMM)
HSMM <- detectGenes(HSMM, min_expr = 0.1)
expressed_genes <- row.names(subset(fData(HSMM), num_cells_expressed >= 10))
pData(HSMM)$Total_mRNAs <- Matrix::colSums(exprs(HSMM))
HSMM <- HSMM[,pData(HSMM)$Total_mRNAs < 1e6]
HSMM <- detectGenes(HSMM, min_expr = 0.1)
# Log-transform each value in the expression matrix.
L <- log(exprs(HSMM[expressed_genes,]))
# Standardize each gene, so that they are all on the same scale,
# Then melt the data with plyr so we can plot it easily
melted_dens_df <- melt(Matrix::t(scale(Matrix::t(L))))
# Plot the distribution of the standardized gene expression values.
qplot(value, geom = "density", data = melted_dens_df) +
stat_function(fun = dnorm, size = 0.5, color = 'red') +
xlab("Standardized log(FPKM)") +
ylab("Density")
MYF5_id <- row.names(subset(fData(HSMM), gene_short_name == "MYF5"))
ANPEP_id <- row.names(subset(fData(HSMM), gene_short_name == "ANPEP"))
cth <- newCellTypeHierarchy()
cth <- addCellType(cth, "Myoblast", classify_func = function(x) { x[MYF5_id,] >= 1 })
cth <- addCellType(cth, "Fibroblast", classify_func = function(x)
{ x[MYF5_id,] < 1 & x[ANPEP_id,] > 1 })
HSMM <- classifyCells(HSMM, cth, 0.1)
test_that("markerDiffTable works properly in vignette",
expect_error(markerDiffTable(HSMM[expressed_genes,],
cth,
residualModelFormulaStr = "~Media + num_genes_expressed",
cores = 1), NA))
test_that("markerDiffTable works when 'balanced set to true'",
expect_error(markerDiffTable(HSMM[expressed_genes,],
cth,
balanced = TRUE,
residualModelFormulaStr = "~Media + num_genes_expressed",
cores = 1), NA))
test_that("markerDiffTable works when 'verbose set to true'",
expect_error(markerDiffTable(HSMM[expressed_genes,],
cth,
verbose = TRUE,
residualModelFormulaStr = "~Media + num_genes_expressed",
cores = 1), NA))
test_that("markerDiffTable throws error if cds is not of type 'CellDataSet'",
expect_error(markerDiffTable(cth,
cth,
balanced = TRUE,
residualModelFormulaStr = "~Media + num_genes_expressed",
cores = 1), "Error cds is not of type 'CellDataSet'"))
test_that("markerDiffTable throws error if cds is not of type 'CellDataSet'",
expect_error(markerDiffTable(HSMM[expressed_genes,],
HSMM[expressed_genes],
balanced = TRUE,
residualModelFormulaStr = "~Media + num_genes_expressed",
cores = 1), "Error cth is not of type 'CellTypeHierarchy'"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.