[BioC] append on DNAStringSet produces an empty DNAString as last element
    Philip Kensche 
    pkensche at cmbi.ru.nl
       
    Wed Aug 11 13:25:05 CEST 2010
    
    
  
Dear Martin,
> On 08/10/2010 03:01 AM, Philip Kensche wrote:
> > Hi,
> > 
> > I noticed that following:
> > 
> >> append(DNAStringSet(), list(DNAString("aaaa"), DNAString("catc")))
> > 
> > [[1]]
> >   4-letter "DNAString" instance
> > seq: AAAA
> > 
> > [[3A2]]
> >   4-letter "DNAString" instance
> > seq: CATC
> > 
> > [[3]]
> >   A DNAStringSet instance of length 0
> > 
> > I guess, the last element shouldn't be there -- or not?
> this has to do with what base::append does when the first argument is
> zero length,
> > base::append
> function (x, values, after = length(x))
> {
>     lengx <- length(x)
>     if (!after)
>         c(values, x)
>     else if (after >= lengx)
>         c(x, values)
>     else c(x[1L:after], values, x[(after + 1L):lengx])
> }
> <environment: namespace:base>
> which leads to some inconsistent behavior, e.g., dropping zero-length
> atomic vectors but not other data structures
> > append(numeric(), list(1))
> [[1]]
> [1] 1
> > append(new.env(), list(1))
> [[1]]
> [1] 1
> [[2]]
> <environment: 0x461a508>
> I'm not sure what the reason for this behavior is; I might have expected
> list(numeric(), 1) in the first case, list(new.env(), 1) in the second.
If I see that right, it is a problem of the append function from package base, i.e. of an R core package.
Actually, I noticed that function base::append called on c("DNAStringSet", "list") returns a list. I would expect it to return an extended DNAStringSet.
Thanks, Martin!
	Philip
P.S.:
> is that '[[3A2]]' in your output correct? It suggests some kind of
> memory corruption (in R?) but I can't reproduce it.
It's not because of R. It must have happened in the editor -- so nothing to worry about :-)
> Martin
> > 
> > 
> > Regards,
> > 
> >	Philip
> > 
> > 
> > 
> > 
> > P.S.:
> > 
> > 
> >> sessionInfo()
> > R version 2.11.1 (2010-05-31) 
> > x86_64-pc-linux-gnu 
> > 
> > locale:
> >  [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
> >  [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
> >  [5] LC_MONETARY=C              LC_MESSAGES=de_DE.UTF-8   
> >  [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
> >  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
> > [11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
> > 
> > attached base packages:
> > [1] stats     graphics  grDevices utils     datasets  methods   base     
> > 
> > other attached packages:
> > [1] GenomicRanges_1.0.7 Biostrings_2.16.9   IRanges_1.6.6      
> > 
> > loaded via a namespace (and not attached):
> > [1] Biobase_2.8.0   BSgenome_1.16.2
> > 
> > 
> -- 
> Martin Morgan
> Computational Biology / Fred Hutchinson Cancer Research Center
> 1100 Fairview Ave. N.
> PO Box 19024 Seattle, WA 98109
> Location: Arnold Building M1 B861
> Phone: (206) 667-2793
-- 
  | Philip Kensche <pkensche at cmbi.ru.nl>
  | http://www.cmbi.ru.nl/~pkensche
  |
  | Center for Molecular and Biomolecular Informatics
  | http://www2.cmbi.ru.nl
  |
  | phone +31 (0)24 36 19693
  | fax   +31 (0)24 36 19395
    
    
More information about the Bioconductor
mailing list