<HTML>
<HEAD>
<TITLE>Nomenclature</TITLE>
</HEAD>
<BODY>
<BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>
Could we agree on the following names? If anyone prefers another one, let it know, but it would be nice if we can decide what to take (saves a lot of typing ;-) <BR>
<BR>
BCSymbol (instead of BCSequenceUnit) <BR>
| <BR>
| <BR>
------------ BCNucleotide (instead of BCBase) <BR>
| <BR>
| <BR>
------------ BCAminoAcid <BR>
| <BR>
| <BR>
------------ etc (think BCSaccharide and alikes) <BR>
<BR>
I think BCFunctionalGroup should be a feature (like phosphates) and not a symbol, but perhaps I am wrong here.  <BR>
<BR>
For sequences I would propose to take the names Koen already mentioned: <BR>
<BR>
BCSequence <BR>
| <BR>
| <BR>
----------------BCSequenceDNA <BR>
| <BR>
| <BR>
----------------BCSequenceProtein <BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Okay, the BCSequenceDNA was just a first stab at thinking of the methods we’d want.  Once I filled them in, I’d think about which ones would work generally across all sequences, and move them to the superclass, which I haven’t defined yet.  What you saw was the twistings of my mind in action ;)<BR>
<BR>
That said, mentally I was reserving BCSequence as the wrapper for a type of sequence and all the additions – features, format conversion, etc.  I was thinking more along the lines of:<BR>
<BR>
                       BCSequenceGeneric<BR>
                        | <BR>
BCSequence      | <BR>
Contains an       |<BR>
Instance of ->   ----------------BCSequenceDNA <BR>
                        | <BR>
                        | <BR>
                        ----------------BCSequenceProtein <BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>That said, it would violate the naming conventions I’d argued for, so I hereby reject my own thinking.  Given that, what do we call the wrapper object on the left then?<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>
<BR>
I think this all makes life a bit simpler to implement John. I like the addition of the proposed equality testing methods you mention: <BR>
- (BOOL) complementsNucleotide: (BCNucleotide *)entry; (would be BCNucleotide specific) <BR>
- (BOOL) representsSymbol: (BCSymbol *) entry; (do you mean here to test whether this base belongs to an ambiguous group?) <BR>
And would like to add: <BR>
- (BOOL) isEqualToSymbol: (BCSymbol *) entry; <BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Wouldn’t NSObject’s “isEqual” method work just as well here?<BR>
<BR>
And the second method (which I wrote this morning) looks like:<BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Monaco, Courier New"><SPAN STYLE='font-size:10.0px'>- (<FONT COLOR="#760F50">BOOL</FONT>) representsBase: (BCSequenceDNABase *) entry {<BR>
    <FONT COLOR="#760F50">if</FONT> ( [[<FONT COLOR="#760F50">self</FONT> matches] containsObject: entry] )<BR>
        <FONT COLOR="#760F50">return</FONT> <FONT COLOR="#760F50">YES</FONT>;<BR>
    <FONT COLOR="#760F50">return</FONT> <FONT COLOR="#760F50">NO</FONT>;    <BR>
}<BR>
</SPAN></FONT></FONT><BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>It works if you have an ambiguous base as self, and get handed another base.<BR>
<BR>
JT<BR>
<BR>
_______________________________________________<BR>
This mind intentionally left blank<BR>
</SPAN></FONT>
</BODY>
</HTML>