[Bioperl-l] Bio::Tree::AnnotatableNode

Chris Fields cjfields at uiuc.edu
Thu Jun 19 18:24:21 EDT 2008

On Jun 19, 2008, at 4:23 PM, Han, Mira wrote:

> My current position is that
> I will override the internal_id method to store the id_source ids  
> instead of
> the creation_id.

It looks like you can set the internal_id() with the _creation_id()  
private method.

> And I will use Annotation::SimpleValue instead of the _tags hash in  
> the
> Tree::Node
> I guess in that case I'll have to implement the add_tag_value etc to  
> use
> Annotation::SimpleValue internally?

It makes sense as you wouldn't want a mixed bag of scalar tags and  
AnnotationI, though this sounds eerily similar to what I just rolled  
back in SeqFeature/Annotatable.  I think it's okay in this case.

With that in mind, you'll obviously need to reimplement the other  
'tag' methods similarly so they replicate behavior indicated in the  
NodeI API and Node implementation (i.e. if args are accepted or values  
returned they must be scalar values and not Annotation::SimpleValue).

> Another quick questions..
> Which is the general style, to use hyphenated tags or just normal  
> words for
> keys like this?
> Mira

Normal words, though documenting these is best.  For consistency you  
may want to see what other TreeIO parsers use for tag names and (if  
there are similarities) use the same tag names.


> On 6/19/08 5:07 PM, "Mira Han" <mirhan at indiana.edu> wrote:
>> Hi,
>> I have a few questions regarding the design of the AnnotatableNode.
>> 1. add_tag_value or Annotation::SimpleValue?
>> I have property tags for nodes that can be defined by the user,  
>> that contains
>> generally simple scalar values,
>> I'm currently using the Annotation::SimpleValue to contain them in  
>> the node.
>> What I'm wondering is..
>> should I use the tag/value implementation already in NodeI for  
>> these instead?
>> 2. I have to also maintain a unique identifier for each node called  
>> id_source.
>> First I was looking to use the internal_id to store the unique ids.
>> But now I realized that we cannot set the internal_id to arbitrary  
>> ids,
>> We can only get the values already determined.
>> So now I'm wondering again should I set this id as a tag/value? Or a
>> SimpleAnnotation?
>> Or can I modify the code so that we can set the internal_id?
>> Mira
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

More information about the Bioperl-l mailing list