1D extraction on matrices (treating them as a 1D vector) is actually
useful, but I don't see how that would really make sense here. This is an
inconsistency, and inconsistencies are often OK when there is a benefit
(like gr$foo), but unless I'm missing something the benefit here seems to
be x[i] vs. x[i,], and it's not clear why the shortcut would exist for rows
instead of cols.

Michael



On Fri, Mar 21, 2014 at 1:45 PM, Martin Morgan <mtmorgan@fhcrc.org> wrote:

> On 03/20/2014 05:20 PM, Hervé Pagès wrote:
>
>> Hi,
>>
>> On 03/19/2014 01:10 PM, Michael Lawrence wrote:
>>
>>> You can apparently use 1D extraction for VCF, which is a little
>>> surprising;
>>> I learned it from restrictToSNV.
>>>
>>
>> This is inherited from SummarizedExperiment:
>>
>>    > example(SummarizedExperiment)
>>
>>    > se1
>>    class: SummarizedExperiment
>>    dim: 200 6
>>    exptData(0):
>>    assays(1): counts
>>    rownames: NULL
>>    rowData metadata column names(0):
>>    colnames(6): A B ... E F
>>    colData names(1): Treatment
>>
>>    > se1[1:4]
>>    class: SummarizedExperiment
>>    dim: 4 6
>>    exptData(0):
>>    assays(1): counts
>>    rownames: NULL
>>    rowData metadata column names(0):
>>    colnames(6): A B ... E F
>>    colData names(1): Treatment
>>
>> To me that means that a SummarizedExperiment has a length
>> (conceptually), and that this length is the number of rows.
>> It would actually help if a "length" method was defined:
>>
>>    > length(se1)
>>    [1] 1
>>
>
> I think of a SummarizedExperiment as fundamentally a matrix with row and
> column annotations. 'length' would then be prod(dim(se1)) col- and
> rownames() are defined but names() is NULL. I guess 1-D sub-setting isn't
> matrix-like, but I don't think that removing this 'feature' simply for
> consistency sake is worth it; I guess the subsetting logical was
> copy/pasted from other code without enough thought. head(), tail() could be
> implemented if this were somehow useful (I usually use these for compact
> display, and that's irrelevant here...); rev() on a matrix doesn't do
> anything useful.
>
> Martin
>
>
>
>> That would automatically fix many convenience [ wrappers like head(),
>> tail(), rev(), etc...
>>
>>    > head(se1)
>>    class: SummarizedExperiment
>>    dim: 1 6
>>    exptData(0):
>>    assays(1): counts
>>    rownames: NULL
>>    rowData metadata column names(0):
>>    colnames(6): A B ... E F
>>    colData names(1): Treatment
>>
>>    > rev(se1)
>>    class: SummarizedExperiment
>>    dim: 1 6
>>    exptData(0):
>>    assays(1): counts
>>    rownames: NULL
>>    rowData metadata column names(0):
>>    colnames(6): A B ... E F
>>    colData names(1): Treatment
>>
>> Following that logic names(se1) also probably return colnames(se1).
>>
>> H.
>>
>>
>>>
>>>
>>>
>>> On Wed, Mar 19, 2014 at 1:07 PM, Vincent Carey
>>> <stvjc@channing.harvard.edu>wrote:
>>>
>>>
>>>>
>>>>
>>>> On Wed, Mar 19, 2014 at 4:00 PM, Michael Lawrence <
>>>> lawrence.michael@gene.com> wrote:
>>>>
>>>>  It would be nice to have functions like isSNV, isIndel, isDeletion, etc
>>>>> that at least provide precise definitions of the terminology. I've
>>>>> added
>>>>> these, but they're designed only for VRanges. Should work for
>>>>> ExpandedVCF.
>>>>>
>>>>> Also, it would be nice if restrictToSNV just assumed that alt(x) must
>>>>> be
>>>>> something with nchar() support (with special handling for any List), so
>>>>> that the 'character' vector of alt,VRanges would work immediately.
>>>>> Basically restrictToSNV should just be x[isSNV(x)]. Is there even a
>>>>> use-case for the restrictToSNV abstraction if we did that?
>>>>>
>>>>>
>>>>>  for VCF instance it would be x[isSNV(x),] and indeed I think that
>>>> would be
>>>> sufficient.  i like the idea of having this family of predicates for
>>>> variant classes to allow such selections
>>>>
>>>>
>>>>
>>>>  Michael
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Mar 18, 2014 at 10:36 AM, Valerie Obenchain <
>>>>> vobencha@fhcrc.org>wrote:
>>>>>
>>>>>  Hi,
>>>>>>
>>>>>> I've added a restrictToSNV() function to VariantAnnotation (1.9.46).
>>>>>> The
>>>>>> return value is a subset VCF object containing SNVs only. The function
>>>>>> operates on CollapsedVCF or ExapandedVCF and the alt(VCF) value must
>>>>>> be
>>>>>> nucleotides (i.e., no structural variants).
>>>>>>
>>>>>> A variant is considered a SNV if the nucleotide sequences in both
>>>>>> ref(vcf) and alt(x) are of length 1. I have a question about how
>>>>>> variants
>>>>>> with multiple 'ALT' values should be handled.
>>>>>>
>>>>>> Should we consider row 4 a SNV? One 'ALT' is length 1, the other is
>>>>>> not.
>>>>>>
>>>>>> ALT <- DNAStringSetList("A", c("TT"), c("G", "A"), c("TT", "C"))
>>>>>> REF <- DNAStringSet(c("G", c("AA"), "T", "G"))
>>>>>>
>>>>>>  DataFrame(REF, ALT)
>>>>>>>
>>>>>>>>
>>>>>>>>  DataFrame with 4 rows and 2 columns
>>>>>>>               REF                ALT
>>>>>>>    <DNAStringSet> <DNAStringSetList>
>>>>>>> 1              G                  A
>>>>>>> 2             AA                 TT
>>>>>>> 3              T                G,A
>>>>>>> 4              G               TT,C
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Thanks.
>>>>>> Valerie
>>>>>>
>>>>>> _______________________________________________
>>>>>> Bioc-devel@r-project.org mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>     [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> Bioc-devel@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>
>>>
>>
>
> --
> 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
>

	[[alternative HTML version deleted]]

