[Biopython-dev] syntax of indices for future Alignment object
Jan Kosinski
kosa at genesilico.pl
Fri Jul 27 10:35:15 EDT 2007
Hi,
Sorry for a typo ;-) Of course it should read:
... while the [A:B,X:Y] syntax is clear and sufficient."
Cheers,
Janek
Jan Kosinski wrote:
> Hi,
>
> Ok, I agree that [A:B][X:Y] syntax is not possible here. [A:B,X:Y] is
> fine. However, I would recommend not using [A:B:C,X:Y:Z] since it is
> not clear while the [A:B][X:Y] syntax is clear and sufficient.
>
> We had another discussion in the lab about that Alignment object
> should not store records in the list but rather in a dictionary (but
> keeping information about sequence order ) or so. What is you
> reasoning for making Alignment object a list of SeqRecord objects?
> One should carefully think about design of the Alignment class since
> it will influence all further steps. As now the class is in its
> infancy there is a very good moment for thinking what the Alignment
> class is for and what it should support. For instance, the Alignment
> object should support changing characters in the alignment without a
> need of copying it (using aln[a][x] = "D"). Can it be done now with
> Alignment which is a list of SeqRecord objects with sequences
> implemented as immutable Seq objects ?
>
> Cheers,
> Jan Kosinski
>
>
> Peter wrote:
>> Jan Kosinski wrote:
>>> Hi,
>>>
>>> From the viewpoint of the enduser we would like python Alignment
>>> object
>>> to behave outside as an array so we could get slices, columns,
>>> sequences, their fragments, whatever we want etc. The most intuitive
>>> and
>>> clear (certainly much better than not very clear indexes like
>>> [xxx:yyy:zzz]) for the user is the following.
>>>
>>> [A:B][X:Y] - general syntax of indices. This supports almost
>>> everything.
>>
>> I think Michiel and I were suggesting [A:B,X:Y] or rather
>> [A:B:C,X:Y:Z] to be fully general, rather than [A:B][X:Y] or
>> [A:B:C][X:Y:Z]
>>
>> i.e. [arg1, arg2] rather than [arg1][arg2]
>>
>> This is an important point, as in the first case the __getitem__
>> method of the alignment is called once (with both arguments). In the
>> second case, the __getitem__ method is called with arg1, and may
>> return a SeqRecord or an alignment - and this object's __getitem__
>> method is called with arg2.
>>
>> As written, many of your cases appear to be impossible - but using
>> the [arg1,arg2] we can get close.
>>
>> I've got a working bit of code put together now which I'll attached
>> to bug 1944 soon.
>>
>> http://bugzilla.open-bio.org/show_bug.cgi?id=1944
>>
>> Peter
>>
>>
>> :.
>>
>
>
:.
More information about the Biopython-dev
mailing list