[Biococoa-dev] Design question

Alexander Griekspoor mek at mekentosj.com
Tue Aug 10 02:01:42 EDT 2004


>> Properly the first option if we go for shared symbols, as you can 
>> either add a property to all serines or none in this approach. The 
>> alternative option is to keep a modification dictionary (modification 
>> and position) associated at the sequence level instead of the symbol 
>> one.
> The second option is they way to go, I think. If I remember correctly, 
> both the 'Singleton' and this approach are one of the 'Design 
> Patterns', first described by the Gang of Four. I forgot the name of 
> the second one, but you should check out that book in your local 
> bookstore/library. One of the bibles of OOP.

Thanks Koen, I will check it out, I find myself in "programming land" 
so new that I seriously miss a lot of historic knowledge...
The fact that I was trained as a biologist instead of IT guy doesn't 
help much either ;-)

Yesterday I was still thinking a bit more about the two options I 
presented, and indeed the modification dictionary seems the best way to 
go. I think it's a very nice approach to keep this in a similar way as 
for instance the genbank records show features associated with the 
sequence. I believe John also mentioned something about this. The 
hierarchy would be something along the lines of a dictionary containing 
BCAnnotation objects (biojava does this as well), that would describe 
the positions in simple NSRanges and the type perhaps as 
BCFunctionalGroup objects. One of the problems will be to keep the 
system such that new (for us unknown) modifications/features are easily 
added...

Another thought I would like you to comment on is the addition of a 
"history/editing dictionary" which keeps track of who added/edited a 
sequence and when/what things were edited. In general, I think it would 
be nice if we would go for the "non-destructive editing approach" 
wherever possible. My would-be Biococoa based DNAStrider-like app would 
for instance allow the user to cut and paste fragments and vectors, and 
it would be very nice if many of the editing could always be undone, 
and the original sequence could always be viewed. Think along the lines 
of a modern video editing approach, the files are unchanged, only the 
displayed parts are changed. This could save a lot of memory/disk 
reusal/writing as well. Of course there must be methods to "crop" your 
file as it has no use to keep a complete genome around if your only 
interested in one gene right...

These are things we have to build in the core BCSequence class....
Alex


*********************************************************
                     ** Alexander Griekspoor **
*********************************************************
               The Netherlands Cancer Institute
               Department of Tumorbiology (H4)
          Plesmanlaan 121, 1066 CX, Amsterdam
                     Tel:  + 31 20 - 512 2023
                     Fax:  + 31 20 - 512 2029
                     AIM: mekentosj at mac.com
                     E-mail: a.griekspoor at nki.nl
                 Web: http://www.mekentosj.com

Windows is a 32-bit patch to a 16-bit shell for an 8-bit
operating system, written for a 4-bit processor by a 2-
bit company without 1 bit of sense.

*********************************************************


*********************************************************
                     ** Alexander Griekspoor **
*********************************************************
               The Netherlands Cancer Institute
               Department of Tumorbiology (H4)
          Plesmanlaan 121, 1066 CX, Amsterdam
                   Tel:  + 31 20 - 512 2023
                   Fax:  + 31 20 - 512 2029
                   AIM: mekentosj at mac.com
                   E-mail: a.griekspoor at nki.nl
               Web: http://www.mekentosj.com

                           Mac vs Windows
	65 million years ago, there were more
                      dinosaurs than humans.
	     Where are the dinosaurs now?

*********************************************************




More information about the Biococoa-dev mailing list