Template:Clade/doc
{{#vardefine: nodoc | {{{nodoc}}} }}{{#vardefine: baddoc | {{{baddoc}}} }}
This template is used for illustrating branching trees with the nodes and base labels being clickable links. They are especially suited to represent evolutionary trees.
Usage
{{clade |label1=Base |1=Node }}
produces
Base |
Node |
{{clade |1={{clade |label1=[[Subtree1]] |1=Leaf1 |label2=Subtree2 |2=[[Leaf2]] }} }}
produces
| |||||||
{{clade| style=font-size:75%;line-height:75% |1={{clade |label1=Subtree1 |1=Leaf1 |label2=Subtree2 |2=Leaf2 }} }}
produces
| |||||||
{{clade |1={{clade |1={{clade | thickness=3 |1=Leaf1 |2=Leaf2 }} |2=Leaf3 }} }}
produces
| |||||||||||||
To replace the solid line with a dashed line, use |stateN=dashed:
{{clade |1={{clade |1={{clade |1=Leaf1|state1=dashed |2=Leaf2 }} |2=Leaf3 }} }}
produces
| |||||||||||||
Tips
An easy way of creating larger cladograms is to use the Newick format and proceed to edit it using a suitable text editor to produce the markup.
- Start with Newick format ((a,b),(c,d))
- Replace "(" with "{{clade|"
- Replace ")" with "}}"
- Edit to replace commas with pipes and numbers
- Edit clade labels if needed
{{clade |1={{clade |1=a |2=b }} |2={{clade |1=c |2=d }} }}
Example Perl script to automate the conversion: <source lang="perl"> use constant N=>"\n"; use constant T=>"\t";
my $tree='((a,b),(c,d));'; # get sequence $tree=~s/[\n\r]//g; # loose those spaces $tree=~ s/\:[\.\d]+//g; # loose those lengths while ($tree=~ m/\(/) { foreach my $clade ($tree=~ m/\(([^\(\)]+)\)/g) { my @branches=split /\,/,$clade; s/(\t+)/$1\t/g for @branches; die 'ERROR: degenerate/empty node!'.N if $#branches<1; $tree=~ s/\(\Q$clade\E\)/${\join(,)}/; # substitute } pos($tree)=0; } $tree=~s/(\t*)\t\}\}/$1\}\}/g; # lazy fix
print $tree; </source>
Using a box
You can nest the templates and use links around the text. You may use non-breaking spaces ( ) to obtain spaces or to have labels that have spaces.
The entire cladogram can be placed in a box so that text flows nicely around it.
This is the documentation page, it should be transcluded into the main template page. See Template:Doc for more information.