Template:Clade/doc: Difference between revisions
Mastergalen (talk | contribs) m (Reverted edits by Deadly (talk) to last revision by Mastergalen) |
Mastergalen (talk | contribs) m (1 revision) |
(No difference)
|
Latest revision as of 00:26, 25 December 2012
File:Edit-copy green.svg | This is a documentation subpage for Template:Clade. It contains usage information, categories, interlanguage links and other content that is not part of the original template page. |
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:
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;
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.