Hi All,

Here's what has been bothering me for a long time. I have touched on
this previously in different contexts, but I thought I'd share in a
dedicated thread. I think that NLMSA class starts to become too bulky.
The main reason I see for this is that in effect it performs several
separate functions for completely different modes of usage. First,
NLMSA serves as a class to build alignments, whether from user input
or blast or MAF parsing. The second is querying mode, which consists
mainly of the getitem method and group-by functions. The query
produces NLMSASlice's, which are different entities altogether. They
only allow fixed manipulation of the sub-alignment(s) produced by a
query. Now very frequently I need to sub-query the NLMSASlice with a
sub-interval. This is not possible with the current setup. Hence, I
have to go a slower route of either querying the Big NLMSA or chopping
the individual intervals of the NLMSASlice to the location desired. I
guess my problem is that I don't understand why NLMSASlice and NLMSA
in query mode have different interfaces. They are in essence the same
thing -- an alignment, granted that NLMSASlices are typically much
smaller and have 'connections' to the bigger alignment. Here's what I
wanted to ask. Would it be beneficial to re-factor the two components
of NLMSA functionality, while at the same time merging the subquery
possibility into NLMSASlice? Here's how this could work. The
construction of the alignment can be handled via a separate hierarchy

NLMSABuilderBase: base class for construction methods
   NLMSABuilderMAF: construction from MAF files
   NLMSABuilderBlast: construction from Blast output
   NLMSABuilderManual: interactive construction
   NLMSABuilderYourFavouriteMSAFormat: ...

These classes would all have a build() method, which would yield an
NLMSA object that is ready for querying. This top-level NLMSA object
is very similar in function to the SeqPath concept, in that it
provides a reference for all sub-alignments. The sub-alignments in
turn could also be queried in a very similar fashion to the top-level
NLMSA.

What do you think? Any comments, concerns or issues that I could be
missing?

Cheers,
Alex

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pygr-dev" group.
To post to this group, send email to pygr-dev@googlegroups.com
To unsubscribe from this group, send email to 
pygr-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/pygr-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to