[Biococoa-dev] starting BCAlignment

Philipp Seibel biococoa at bioworxx.com
Wed Mar 9 14:28:14 EST 2005

Am 09.03.2005 um 02:17 schrieb Charles PARNOT:

>> I want to start with the BCAlignment stuff and there are many things  
>> to discuss:
>> 1. what exactly do we want an BCAlignment to be ?
>> 	A slim Datastructure for different Alignment algorithms
>> 	Or a comfortable datastructure, which is perhaps not very useful for  
>> programs concentrating on performance
> In terms of design, we will probably need at least 2 types of classes,  
> following the current structure of the project:
> * some data objects with the results of alignement; I think there were  
> some discussions about it before I joined, on what a sequence cluster  
> might look like,...
> * some tool objects that do the job
> In the tools, you may have to transform the data structure for  
> performance, if performance turns out to be an issue.
> Now my 2 cents with maybe obvious things, but important to keep in  
> mind.
> It is probably a good idea to not focus too much on performance at  
> first... and still leave some doors open for it, with some clean  
> separation between the core functions and the rest. If you are  
> familiar with Shark, it would be a good idea to use it after the first  
> draft of your tools. If you are not familiar with it, it would still  
> be a good idea!
> I was just reading this piece today, linked from cocoadev.com, and it  
> is a very interesting reading:
> http://wilshipley.com/blog/2005/02/free-programming-tips-are-worth- 
> every.html

You are completly right, i will just start and do the optimization  
later on.

> I suspect these considerations do not fully apply to scientific  
> computing, where you can sometimes better predict performance  
> bottleneck, but still, good reading.
>> 2. We need a BCMatrix (protocol or class) for substitution matrices
>> 3. A protocol for alignment generating algorithms
>> 4..
>> 5.. :-) i think it's enough for now
> I am not an expert in alignments,  so I am listening to your ideas!  
> Maybe you could present what you think the goals could be in more  
> details, what kind of alignements you'd want to implement first, how  
> far you want to go,...

I thought of the most common alignment algorithms, like smith-waterman  
and needleman-wunsch. All common sequence based algorithms need  
substitution matrices to compute the alignment score. ( Thats why i  
like to have a BCSubstitutionMatrix class ( e.g. PAM, BLOSSOM ) ).

> You could also start putting some code, and I would look at it and  
> make comments from the naive user's perspective. I am very good at  
> making long emails with endless comments ;-)

i just added a first version of the BCAlignment header.

I consider two classes BCAlignment and BCMutableAlignment, what do you  
think about it ?



More information about the Biococoa-dev mailing list