Skip to content

Commit a215f4f

Browse files
author
jheled@gmail.com
committedAug 13, 2013
new files
1 parent f70fb67 commit a215f4f

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed
 

‎doc/tree2.png

23.3 KB
Loading

‎doc/trees.rst

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
==============
2+
Tree Utilities
3+
==============
4+
5+
------------------
6+
root_unrooted_tree
7+
------------------
8+
9+
Heuristically root an unrooted (or rooted) tree using either
10+
midpoint rooting or the root position which minimizes the variance
11+
of tip ages.
12+
13+
Usage:
14+
^^^^^^
15+
16+
::
17+
18+
Root using midpoint rooting.
19+
20+
| **$ root_unrooted_tree -m '(a:1,b:2,c:3)'**
21+
| ((a:1,b:2):0.5,c:2.5)
22+
23+
::
24+
25+
Root using minimim variance.
26+
27+
| **$ root_unrooted_tree '(a:1,b:2,c:3)'**
28+
| ((a:1,b:2):0.75,c:2.25)
29+
30+
31+
---------
32+
tree2tikz
33+
---------
34+
35+
Generate `tikz code <http://en.wikipedia.org/wiki/PGF/TikZ/>`_ for
36+
a NEWICK tree. At the moment quite primitive, and the single
37+
example below shows the full capabilites. However, it may prove
38+
easier than starting from scratch.
39+
40+
Usage:
41+
^^^^^^
42+
43+
::
44+
45+
Generate a tree with some (red) marked nodes, and a vertical line passes through them and the root.
46+
47+
| **$ tree2tikz --standalone --style 'marked=thick,red,fill' -o auto '(((A:1,B:1):1,C:2)[&style=marked,vline=hline]:5,(((D:1.5,E:1.5):2.5,((F:1,G:1):1.5,H:2.5):1.5)[&style=marked,vline=hline]:2,(I:2.75,K:2.75):3.5):0.75)[&vline=hline]'**
48+
49+
.. image:: tree2.png
50+
51+

‎tests/alignTest.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from __future__ import division
2+
from math import log,exp
3+
4+
from calign import globalAlign, createProfile, profileAlign, distances, DIVERGENCE, IDENTITY, JCcorrection
5+
6+
#scores = (10,-5,-6,None,False)
7+
scores = (10,-5,-6,-6,False)
8+
fescores = (10,-5,-6,-6,True)
9+
10+
s1 = """AAGTCGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTAGTGATTGCCATCTTGGCTTAAACTATATCCATCTACACCTGTGAACTGTTTGATTGAATCTCACGATTCAATTCTTTACAAACATTGTGTAATGAACGTCATTAGATCATAACAAAAAAACTTTAACTAACGGATCTCTTGGCTCTCGCATCGATGAAGAACGCAGCGGTCATAGCTGTTTCC"""
11+
12+
s2 = """AAGTCGTAACGAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTAAAGGTTTCGGGTACCCAGTGCCCAAACTTCAACCCTATGTTTTAACTATACATGTTTCTTTGCCGGTTTCGGCCGGCAGAAGTTTTCTCAAACTCATTATAAATGTGTCTTCTGAATCAAAACTAAATAAATTATAAAACTTTCAACAACGGATCTCTTGGTTCTGGCATCGATGAAGAACGCAGCGGTCATAGCTGTTTCCTG"""
13+
14+
s3 = """CGCAGTGGGGTGGTGTGCTCGATGTGGCCGGTGCCGATCGCGTGACCGTTGGCCGTCAACGTCACGGTGCCGCCTTTGCCGAAATCCTTAGGGCCGCCGTCGTATTTGAAGTTGAATCCCAGTGTGACCCTGCCGGTCGGAACTGACTGGCTCGACGTCACCCGGTAGCGCGCGGCATCGATGAAGAACGCAGCGGTCATAGCTGTTTCCTG"""
15+
16+
def test00() :
17+
"""
18+
>>> globalAlign("AAA", "AAA", report = IDENTITY)
19+
1.0
20+
>>> globalAlign("AAA", "AAA", report = DIVERGENCE)
21+
0.0
22+
>>> 3*globalAlign("AAA", "AAC", report = IDENTITY, scores=scores)
23+
2.0
24+
>>> (globalAlign("AAA", "AAC", report = JCcorrection, scores=scores) - (-3/4. * log(5/9.))) < 1e-12
25+
True
26+
>>> globalAlign("AAGG", "AAT", report = IDENTITY, scores=scores)
27+
0.5
28+
>>> 3*globalAlign("AAGG", "AAT", report = IDENTITY, scores=fescores)
29+
2.0
30+
>>> globalAlign("AAGG", "TAA", scores=fescores)
31+
((5, 0, 0, 1, 1), (3, 0, 0, 5, 5))
32+
>>> 265.0*globalAlign(s1, s2, scores=scores, report=IDENTITY)
33+
188.0
34+
>>> 263*globalAlign(s1, s2, scores=fescores, report=IDENTITY)
35+
188.0
36+
>>> a = globalAlign(s1, s2, scores=scores) ; p = createProfile(a) ; b = profileAlign(s3,p) ; distances((b,) + a, align=0)
37+
(0.508, 0.4921875, 0.28517110266159695)
38+
"""
39+
pass
40+
41+
if __name__ == '__main__':
42+
import doctest
43+
doctest.testmod()
44+

0 commit comments

Comments
 (0)
Please sign in to comment.