[BioC] append on DNAStringSet produces an empty DNAString as last element

Martin Morgan mtmorgan at fhcrc.org
Tue Aug 10 15:22:23 CEST 2010


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.

is that '[[3A2]]' in your output correct? It suggests some kind of
memory corruption (in R?) but I can't reproduce it.

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



More information about the Bioconductor mailing list