[Biopython-dev] [Wg-phyloinformatics] GSoC Weekly Update 9: PhyloXML for Biopython

Eric Talevich eric.talevich at gmail.com
Tue Jul 21 17:29:54 UTC 2009

On Tue, Jul 21, 2009 at 1:03 PM, Hilmar Lapp <hlapp at duke.edu> wrote:

> On Jul 20, 2009, at 10:57 AM, Eric Talevich wrote:
>  the 'node' in Nexus and PhyloDB is called 'clade' in phyloXML
> Really? A clade is *not* a node in the sense it is normally used in
> phylogenetics, and I would suggest that PhyloXML is using "clade"
> synonymously with "node" it needs to change b/c using established
> terminology in conflicting ways isn't a good idea.
> A clade is a subtree of a tree, i.e., a node and all its descendent nodes
> (and the branches that connect them). Or more generally for an unrooted
> tree, it is any group of nodes (and branches connecting them) that can be
> completely separated from the rest of the tree by severing a single branch.
>        -hilmar

Interesting to know. Here's the documentation for the Clade type:

Element Clade is used in a recursive manner to describe the topology of a
phylogenetic tree. The parent branch length of a clade can be described
either with the 'branch_length' element or the 'branch_length' attribute (it
is not recommended to use both at the same time, though). Usage of the
'branch_length' attribute allows for a less verbose description. Element
'confidence' is used to indicate the support for a clade/parent branch.
Element 'events' is used to describe such events as gene-duplications at the
root node/parent branch of a clade. Element 'width' is the branch width for
this clade (including parent branch). Both 'color' and 'width' elements
apply for the whole clade unless overwritten in-sub clades. Attribute
'id_source' is used to link other elements to a clade (on the xml-level).

It has a label (name), confidence value and branch length like most Node
objects do, and even an attribute called node_id. I guess nodes and edges
are implicit in the phyloXML representation, and everything *except* the
clade class would be considered a sub-type of the traditional node. Then
maybe Clade should inherit from Tree instead of Node, and offer an interface
to implicit node and edge objects.

For the purposes of reusing methods among Nexus, phyloXML, etc. trees, using
Clade as a Node seems easiest in terms of having the right attributes
available. The same mapping is being using in the BioRuby project, too:
Phylogeny:Tree, Clade:Node. (Not sure about Bioperl.)

I'll hold off working on the BaseTree integration until we have consensus on


More information about the Biopython-dev mailing list