[Phylobase-devl] node retrieval

Marguerite Butler mbutler at hawaii.edu
Fri Mar 7 08:20:08 CET 2008


>> Hilmar Lapp wrote:
>>> On Mar 5, 2008, at 3:14 AM, Steve Kembel wrote:
>>>> Are there any more decisions to be made about what to call things?
>>>> Tips, internals, nodes, edges
>>>> Descendant, ancestor, sister
>>> I wouldn't use sister, use the more neutral 'sibling' instead.
>>> There is also typically a distinction between parents versus
>>> ancestors, and children (or daughters) versus descendants (the
>>> first  ones being in direct relationship, and the latter ones
>>> direct or via  transitivity).
>>> 	-hilmar
>>
>>
>>   that's useful.  so my functions (ancestor, descendants,
>> alldescendants, allancestors) could be (parent, children,
>> descendants, ancestors) ... ?
>
> That's right. allancestors() sounds confusing, for the above reasons.
>
> Obviously you could just have ancestors(), with an option direct=TRUE|
> FALSE. You could also still have parents() and have it just delegate
> to ancestors(direct=TRUE). Personally that's probably what I would go
> with implementation-wise, but it may be more a matter of taste than
> anything else.
>
> 	-hilmar

Woa guys!  As far as I know, people who use comparative methods think  
of ancestor and descendant as the direct relationship.

It may be because when students are being taught systematics, this is  
the terminology that we use to talk about character evolution on  
trees (especially when introducing synapomorphy, homology, homoplasy,  
etc). Which way the ancestor - descendant relationship goes matters a  
great deal when you are trying to figure out character polarity  
(which is the new vs. ancestral character state)

Also, there might be stuff floating around. Years ago, Wayne Maddison  
made a tree programming tutorial in Pascal, and he used ancestor- 
descendant to talk about linking nodes together via pointers. I am  
pretty sure that Joe Felsenstein used this terminology too in an  
short document in his Phylip package (all written in ascii!)

So, please don't use parent to mean ancestor and descendant() to mean  
grab the entire clade! That will be very confusing.  I would prefer  
the single function, but with the default indicated this way:

ancestor(all=FALSE)
descendant(all=FALSE)

If you are coming from the point of view that descendant means direct  
descendant and ancestor means direct ancestor, this might be more  
intuitive.

Marguerite
____________________________________________
Marguerite A. Butler
Department of Zoology
University of Hawaii
2538 McCarthy Mall, Edmondson 259
Honolulu, HI  96822

Phone: 808-956-4713
FAX:   808-956-9812
Dept: 808-956-8617
http://www2.hawaii.edu/~mbutler
http://www.hawaii.edu/zoology/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.r-forge.r-project.org/pipermail/phylobase-devl/attachments/20080306/21fe7ca4/attachment-0001.htm 


More information about the Phylobase-devl mailing list