Hi I'm missing something here but I cannot figure out what. What I can see is that the same code works when I load it via source(...) yet fails when I execute it after loading the package I have built (which includes the code.
Below is a transcript of my R session. First I load the code from a file, using source(). Then I execute it fine. Then I remove the function object, I load the package, and execute the same code from the package - and I get an error. Please help! Mick > library(Rsamtools) > source("viRome/R/read.bam.R") > read.bam function(bamfile=NULL, chr=NULL, start=1, end=1e07, what=c("qname", "flag", "rname", "strand", "pos", "qwidth", "mapq", "cigar", "mrnm", "mpos", "isize", "seq"), tag=c("NM"), removeN=TRUE) { which <- RangesList(chr = IRanges(start,end)) names(which) <- chr param <- ScanBamParam(which = which, what = what, tag=tag) bam <- scanBam(bamfile, param=param) lst <- lapply(names(bam[[1]]), function(elt) {do.call(c, unname(lapply (bam, "[[", elt)))}) names(lst) <- names(bam[[1]]) # convert to data.frame df <- do.call("DataFrame", lst) df <- df[!is.na(df$qwidth),] df$seq <- as.character(df$seq) df$cigar <- as.character(df$cigar) df$rname <- rep(chr, nrow(df)) if (removeN==TRUE) { ns <- grep("N", df$seq) if (length(ns) > 0) { df <- df[-ns,] } } return(as.data.frame(df)) } > bam <- read.bam("../../example/SRR389185_vs_SINV_sorted.bam", chr="SINV") > # works! remove the function > rm(read.bam) > # load the package > library(viRome) Loading required package: seqinr Attaching package: âseqinrâ The following object(s) are masked from âpackage:Biostringsâ: translate Loading required package: plyr Attaching package: âplyrâ The following object(s) are masked from âpackage:seqinrâ: count The following object(s) are masked from âpackage:IRangesâ: compact, desc, rename Loading required package: gsubfn Loading required package: proto Loading required namespace: tcltk Loading Tcl/Tk interface ... done Loading required package: seqLogo Loading required package: grid > read.bam function (bamfile = NULL, chr = NULL, start = 1, end = 1e+07, what = c("qname", "flag", "rname", "strand", "pos", "qwidth", "mapq", "cigar", "mrnm", "mpos", "isize", "seq"), tag = c("NM"), removeN = TRUE) { which <- RangesList(chr = IRanges(start, end)) names(which) <- chr param <- ScanBamParam(which = which, what = what, tag = tag) bam <- scanBam(bamfile, param = param) lst <- lapply(names(bam[[1]]), function(elt) { do.call(c, unname(lapply(bam, "[[", elt))) }) names(lst) <- names(bam[[1]]) df <- do.call("DataFrame", lst) df <- df[!is.na(df$qwidth), ] df$seq <- as.character(df$seq) df$cigar <- as.character(df$cigar) df$rname <- rep(chr, nrow(df)) if (removeN == TRUE) { ns <- grep("N", df$seq) if (length(ns) > 0) { df <- df[-ns, ] } } return(as.data.frame(df)) } <environment: namespace:viRome> > # same code now produces an error > bam <- read.bam("../../example/SRR389185_vs_SINV_sorted.bam", chr="SINV") Error in as.data.frame.default(df) : cannot coerce class 'structure("DataFrame", package = "IRanges")' into a data.frame R version 2.15.2 (2012-10-26) Platform: x86_64-redhat-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] grid stats graphics grDevices utils datasets methods [8] base other attached packages: [1] viRome_0.2 seqLogo_1.24.0 gsubfn_0.6-5 [4] proto_0.3-9.2 plyr_1.8 seqinr_3.0-7 [7] Rsamtools_1.10.2 Biostrings_2.26.2 GenomicRanges_1.10.5 [10] IRanges_1.16.4 BiocGenerics_0.4.0 loaded via a namespace (and not attached): [1] bitops_1.0-5 parallel_2.15.2 stats4_2.15.2 tcltk_2.15.2 [5] zlibbioc_1.4.0 -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.