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 -~----------~----~----~----~------~----~------~--~---