###
test_makeTxDb <- function()
{
## A TOY CASE
## ----------
transcripts0 <- data.frame(
tx_id=c(26L, 5L, 11L),
tx_name=c("A", "B", "C"),
tx_chrom=c("chr1", "chr2", "chr2"),
tx_strand=c("+", "-", "-"),
tx_start=c(1L, 16844685L, 16844685L),
tx_end=c(100L, 16844760L, 16844760L),
stringsAsFactors = TRUE)
splicings0 <- data.frame(
tx_id=c(26L, 5L, 26L, 11L),
exon_rank=c(2L, 1L, 1L, 1L),
exon_start=c(1L, 16844685L, 1L, 16844685L),
exon_end=c(100L, 16844760L, 100L, 16844760L))
suppressWarnings(txdb0a <- makeTxDb(transcripts0, splicings0,
reassign.ids=TRUE))
suppressWarnings(txdb0b <- makeTxDb(transcripts0, splicings0))
## Check the transcripts.
transcripts1 <- data.frame(
tx_id=transcripts0$tx_id,
tx_name=as.character(transcripts0$tx_name),
tx_chrom=transcripts0$tx_chrom,
tx_strand=transcripts0$tx_strand,
tx_start=transcripts0$tx_start,
tx_end=transcripts0$tx_end,
stringsAsFactors=FALSE)
oo <- order(transcripts1$tx_id)
transcripts1b <- transcripts1[oo, ]
rownames(transcripts1b) <- NULL
transcripts1a <- transcripts1
transcripts1a$tx_id <- 1:3
checkIdentical(as.list(txdb0a)$transcripts, transcripts1a)
checkIdentical(as.list(txdb0b)$transcripts, transcripts1b)
## Check the splicings.
rowmap <- match(splicings0$tx_id, transcripts0$tx_id)
splicings1 <- data.frame(
tx_id=splicings0$tx_id,
exon_rank=splicings0$exon_rank,
exon_id=c(1L, 2L, 1L, 2L),
exon_chrom=transcripts0$tx_chrom[rowmap],
exon_strand=transcripts0$tx_strand[rowmap],
exon_start=splicings0$exon_start,
exon_end=splicings0$exon_end,
cds_id=as.integer(c(NA, NA, NA, NA)),
cds_start=as.integer(c(NA, NA, NA, NA)),
cds_end=as.integer(c(NA, NA, NA, NA)),
stringsAsFactors=FALSE)
splicings1a <- splicings1
splicings1a$tx_id <- c(1L, 2L, 1L, 3L)
oo <- order(splicings1a$tx_id, splicings1a$exon_rank)
splicings1a <- splicings1a[oo, ]
rownames(splicings1a) <- NULL
splicings1b <- splicings1
oo <- order(splicings1b$tx_id, splicings1b$exon_rank)
splicings1b <- splicings1b[oo, ]
rownames(splicings1b) <- NULL
checkIdentical(as.list(txdb0a)$splicings, splicings1a)
checkIdentical(as.list(txdb0b)$splicings, splicings1b)
## WITH REAL DATA
## --------------
## want
txdb0_file <- system.file(
"extdata",
"Biomart_Ensembl_sample.sqlite",
package="GenomicFeatures")
txdb0 <- loadDb(txdb0_file)
## get
txdb1 <- do.call(makeTxDb, as.list(txdb0))
## compare
ok <- GenomicFeatures:::compareTxDbs(txdb1, txdb0)
checkTrue(ok)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.