################################################################################
# Utilities and helper functions for chromVAR
################################################################################
#' getGenomeObject
#'
#' retrieve the appropriate \code{BSgenome} for an assembly string
#'
#' @param assembly string specifying the assembly
#' @param adjChrNames should the prefix "chr" be added to main chromosomes if not already present and chrMT be renamed to chrM?
#' @return \code{BSgenome} object
#' @export
getGenomeObject <- function(assembly, adjChrNames=TRUE){
mainREnum <- "^([1-9][0-9]?|[XYM]|MT)$"
if (is.element(assembly, c("hg19"))){
requireNamespace("BSgenome.Hsapiens.UCSC.hg19")
res <- BSgenome.Hsapiens.UCSC.hg19::Hsapiens
} else if (is.element(assembly, c("GRCh37", "GRCh37_chr"))){
requireNamespace("BSgenome.Hsapiens.1000genomes.hs37d5")
res <- BSgenome.Hsapiens.1000genomes.hs37d5::BSgenome.Hsapiens.1000genomes.hs37d5
} else if (is.element(assembly, c("hg38", "hg38_chr"))){
requireNamespace("BSgenome.Hsapiens.UCSC.hg38")
res <- BSgenome.Hsapiens.UCSC.hg38::Hsapiens
} else if (is.element(assembly, c("GRCh38", "GRCh38_chr"))){
requireNamespace("BSgenome.Hsapiens.NCBI.GRCh38")
res <- BSgenome.Hsapiens.NCBI.GRCh38::Hsapiens
} else if (is.element(assembly, c("mm9"))){
requireNamespace("BSgenome.Mmusculus.UCSC.mm9")
res <- BSgenome.Mmusculus.UCSC.mm9::Mmusculus
} else if (is.element(assembly, c("mm10"))){
requireNamespace("BSgenome.Mmusculus.UCSC.mm10")
res <- BSgenome.Mmusculus.UCSC.mm10::Mmusculus
} else {
stop(paste0("Unknown assembly:", assembly))
}
if (adjChrNames){
prep <- grepl(mainREnum, seqnames(res))
seqnames(res)[prep] <- paste0("chr", seqnames(res)[prep])
if (is.element("chrMT", seqnames(res)) & !is.element("chrM", seqnames(res))){
seqnames(res)[seqnames(res)=="chrMT"] <- "chrM"
}
}
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.