inst/unitTests/test_GmapGenome.R
b22faf0d
 test_GmapGenome_constructor_DNAStringSet_noCreate <- function() {
   dna <- Biostrings::DNAStringSet("ACTGTGTCAG")
c6574d2b
   names(dna) <- "test"
1a08f356
   gmapGenome <- GmapGenome(genome=dna, name="thing", create=FALSE, k = 12)
b22faf0d
   checkTrue(is(gmapGenome, "GmapGenome"))
 }
 
 test_GmapGenome_constructor_DNAStringSet_create <- function() {
15766c62
   set.seed(1)
   seq <- paste0(sample(c("A", "C", "G", "T"), 2000, replace=TRUE),
                 collapse="")
   dna <- Biostrings::DNAStringSet(seq)
b22faf0d
   genomeDir <- file.path(tempdir(), as.integer(runif(1) * 1000000000))
   if (file.exists(genomeDir)) unlink(genomeDir, recursive=TRUE)
   dir.create(genomeDir, recursive=TRUE)
   on.exit(unlink(genomeDir, recursive=TRUE))
fa2ff4e6
   checkException(GmapGenome(genome=dna, directory=genomeDir,
1a08f356
                             name="thing", create=TRUE, k=12))
fa2ff4e6
   names(dna) <- "sampleDNAStringSet"
b22faf0d
   gmapGenome <- GmapGenome(genome=dna, directory=genomeDir,
1a08f356
                            name="thing", create=TRUE, k=12)
b22faf0d
   checkTrue(is(gmapGenome, "GmapGenome"))
 }
 
 test_GmapGenome_constructor_BSgenome_create <- function() {
   library("BSgenome.Scerevisiae.UCSC.sacCer3")
   genomeName <- "yeast"  
   genomeDir <- file.path(tempdir(), as.integer(runif(1) * 1000000000))
   if (file.exists(genomeDir)) unlink(genomeDir, recursive=TRUE)
   dir.create(genomeDir, recursive=TRUE)  
   on.exit(unlink(genomeDir, recursive=TRUE))
   gmapGenome <- GmapGenome(genome=Scerevisiae, directory=genomeDir,
1a08f356
                            name=genomeName, create=TRUE, k=12) 
b22faf0d
   checkTrue(is(gmapGenome, "GmapGenome"))
 }
 
0a4b811e
 testGmapGenome_constructor_FastaFile_create <- function() {
   fa <- system.file("extdata/hg19.p53.fasta", package="gmapR", mustWork=TRUE)
   fastaFile <- rtracklayer::FastaFile(fa)
1a08f356
   gmapGenome <- GmapGenome(fastaFile, create=TRUE, k=12)
0a4b811e
   checkTrue(is(gmapGenome, "GmapGenome"))
 }
 
b22faf0d
 test_GmapGenome_accessors <- function() {
   genomeName <- "testGenome"
   dna <- Biostrings::DNAStringSet("ACTGTGTCAG")
c6574d2b
   names(dna) <- "testDNAString"
b22faf0d
   genomeDir <- file.path(tempdir(), as.integer(runif(1) * 1000000000))
   if (file.exists(genomeDir)) unlink(genomeDir, recursive=TRUE)
   dir.create(genomeDir, recursive=TRUE)
   on.exit(unlink(genomeDir, recursive=TRUE))
f053c5f3
   genomeDir <- normalizePath(genomeDir)
b22faf0d
   gmapGenome <- GmapGenome(genome=dna, directory=genomeDir,
1a08f356
                            name=genomeName, create=FALSE, k=12)
b22faf0d
   checkIdentical(path(gmapGenome), file.path(genomeDir, genomeName))
   checkTrue(is(directory(gmapGenome), "GmapGenomeDirectory"))
   checkIdentical(genome(gmapGenome), genomeName)
 }
2ed0e621
 
 test_GmapGenome_spliceSites_replacement <- function() {
   library("TxDb.Hsapiens.UCSC.hg19.knownGene")
   txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene
   getTP53Range <- function() {
     library(org.Hs.eg.db)
     eg <- org.Hs.egSYMBOL2EG[["TP53"]]
     txTP53 <- transcripts(TxDb.Hsapiens.UCSC.hg19.knownGene,
eb2c4af6
                           filter = list(gene_id = eg))
3190b2ee
     rngs <- GRanges(ranges=IRanges(start(range(txTP53)), end(range(txTP53))),
2ed0e621
                     seqnames="chr17")
     rngs + 1e6
   }
   rngTP53 <- getTP53Range()
   
   exonsByTx <- exonsBy(txdb, by="tx")
0a2be6db
   exonsInRegion <- exonsByTx[exonsByTx %over% rngTP53]
2ed0e621
   
   ##shift coords of retrieved exons so the ranges match the 
   ##region of the genome used for this example
   shiftCoords <- function(x) {
     x <- exonsInRegion
     w <- width(x)
     r <- ranges(x)
     r <- r + start(rngTP53)
     width(r) <- w
     ranges(x) <- r
     return(x)
   }
   shiftedExons <- shiftCoords(exonsInRegion)
   genome <- TP53Genome()
   x <- spliceSites(genome, name="dbSnp") <- shiftedExons
   checkIdentical(class(x), class(GRangesList()))
 }
cf7cde5f
 
 test_if_GmapGenome_dir_does_not_exist <- function() {
   checkException(GmapGenome(genome="NoGenome", directory = file.path(tempdir(), "DoesNotExist")))
 }
5db28c49
 
 test_GmapGenome_getSeq <- function() {
   genomeName <- "testGenome"
   dna <- Biostrings::DNAStringSet(c(testA = "ACTGTGTCAGTTCATGGGACCGTTGC",
                                     testB = "CAACAAATCCGGG"))
   genomeDir <- tempfile()
   if (file.exists(genomeDir))
     unlink(genomeDir, recursive=TRUE)
   dir.create(genomeDir, recursive=TRUE)
   on.exit(unlink(genomeDir, recursive=TRUE))
   genome <- GmapGenome(genome=dna, directory=genomeDir,
                        name=genomeName, create=TRUE, k=12)
   
   gr <- GRanges(rep(c("testA", "testB"), 2),
                 IRanges(c(1, 5, 5, 11), c(1, 10, 7, 10)),
                 c("+", "-", "*", "+"))
   seqs <- getSeq(genome, gr)
   checkIdentical(seqs, c("A", "GGATTT", "TGT", ""))
 
   seqs <- getSeq(genome, GRanges())
   checkIdentical(seqs, character())
 }