Nothing
skip_on_cran()
ArchRProjDir <- "../../../FullCovid"
if (
require("TxDb.Hsapiens.UCSC.hg38.refGene", quietly = TRUE) &&
require("org.Hs.eg.db", quietly = TRUE) &&
require("BSgenome.Hsapiens.UCSC.hg19", quietly = TRUE) &&
dir.exists(ArchRProjDir) &&
require("ArchR", quietly = TRUE)
) {
oldw <- getOption("warn")
options(warn = -1)
test_that("We can plot ", {
ArchRProjDir <- "../../../FullCovid"
# If running line-by-line:
# ArchRProj <- ArchR::loadArchRProject("/home/jupyter/FullCovid")
ArchRProj <- ArchR::loadArchRProject(ArchRProjDir)
metadata <- data.table::as.data.table(ArchR::getCellColData(ArchRProj))
studySignal <- median(metadata$nFrags)
expect_equal(studySignal, 3628)
# Get metadata information at the sample level
lookup_table <- unique(
metadata[, c(
"Sample",
"COVID_status",
"Visit",
"days_since_symptoms"
),
with = FALSE
]
)
# Subset to visit 1 and extract samples
samplesToKeep <- lookup_table$Sample[
lookup_table$Visit == "FH3 COVID-19 Visit 1" &
lookup_table$days_since_symptoms <= 15 |
is.na(lookup_table$days_since_symptoms)
]
# subset ArchR Project
idxSample <- BiocGenerics::which(ArchRProj$Sample %in% samplesToKeep)
cellsSample <- ArchRProj$cellNames[idxSample]
ArchRProj <- ArchRProj[cellsSample, ]
mytempdir <- tempdir()
###########################################################
# 2. Call open tiles (main peak calling step)
# and get sample-tile matrices
# for all specified cell populations
###########################################################
capture.output(tileResults <- MOCHA::callOpenTiles(
ArchRProj,
cellPopLabel = "CellSubsets",
cellPopulations = "CD16 Mono",
TxDb = "TxDb.Hsapiens.UCSC.hg38.refGene",
Org = "org.Hs.eg.db",
numCores = 50,
studySignal = studySignal, # should be 3628
outDir = mytempdir,
verbose = TRUE
))
###########################################################
# 3. Get consensus sample-tile matrices
# for all cell populations.
# These matrices are organized by cell population
# RangedSummarizedExperiment object and are the
# primary input to downstream analyses.
###########################################################
capture.output(SampleTileMatrices <- MOCHA::getSampleTileMatrix(
tileResults,
cellPopulations = "CD16 Mono",
groupColumn = "COVID_status",
threshold = 0.2,
verbose = FALSE
))
###########################################################
# 4. Get differential accessibility for specific
# cell populations. Here we are comparing MAIT
# cells between samples where our groupColumn
# "COVID_status" is Positive (our foreground)
# to Negative samples (our background).
###########################################################
capture.output(
differentials <- MOCHA::getDifferentialAccessibleTiles(
SampleTileObj = SampleTileMatrices,
cellPopulation = "CD16 Mono",
groupColumn = "COVID_status",
foreground = "Positive",
background = "Negative",
outputGRanges = TRUE,
numCores = 40
)
)
cd16_differentials <- plyranges::filter(differentials, FDR <= 0.2)
###########################################################
# 5. Extract a region of interest (usually a differential
# tile) for plotting
###########################################################
region <- "chr4:122610000-122625000"
capture.output(
countSE <- extractRegion(
SampleTileObj = SampleTileMatrices,
region = region,
cellPopulations = "CD16 Mono",
groupColumn = "COVID_status",
subGroups = NULL,
sampleSpecific = FALSE,
approxLimit = 1e+05,
binSize = 250,
numCores = 10,
verbose = TRUE
)
)
###########################################################
# 6. plot region
###########################################################
pdf(file.path(mytempdir, "testplotregion.pdf"))
MOCHA::plotRegion(countSE = countSE)
dev.off()
if (requireNamespace("RMariaDB", quietly = TRUE)) {
pdf(file.path(mytempdir, "testplotregionwhichgene.pdf"))
MOCHA::plotRegion(countSE = countSE,
whichGene = "IL21")
dev.off()
}
# Remove mytempdir in case not generated with tempdir()
unlink(mytempdir, recursive=TRUE)
})
options(warn = oldw)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.